[問題] 關於 javascript 的執行順序

看板Ajax作者 (一天死去一點)時間16年前 (2007/12/20 17:09), 編輯推噓1(106)
留言7則, 3人參與, 最新討論串1/1
我的 js 程式分成兩部份 第一個部份是一些變數,因為內容有一些動態產生的部份 需要寫在動態頁面 html 裡面 第二個部份是獨立的 js 檔案,用 <script src> 標籤載入。內容是 一些程式碼,監聽 window.onload 事件,當頁面載入完畢就執行 init(), 在 init() 會使用到前面提過寫在頁面裡的變數。 但是也許因為這些變數的內容有點大,在執行 init() 時,可能 那些變數還沒被初始化,造成執行 init() 出現該變數未定義 的錯誤,這個錯誤我只在 IE 裡碰到。 請問有沒有什麼方法可以確保 init() 在執行前,這些變數已經被初 始化完畢呢? 我曾經試過把變數包在一系列函式 getSomething() 裡,需要的時候呼叫這 些函式取得變數,結果現在問題變成函式尚未定義 -_- 謝謝~m(_ _)m -- 雁子回到了遙遠的北方 妳的名字我已想不起來 別怪我 生命太匆忙 http://blog.xamous.net -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.175.81.176 ※ 編輯: xamous 來自: 218.175.81.176 (12/20 17:12) ※ 編輯: xamous 來自: 218.175.81.176 (12/20 17:13)

12/20 19:17, , 1F
在body上的onload執行?
12/20 19:17, 1F

12/20 19:18, , 2F
眼殘 , 那就做檢測吧 用import的方式 .
12/20 19:18, 2F

12/20 19:18, , 3F
除了自己判斷變數是不是初始化完了以外 應該沒別條路
12/20 19:18, 3F

12/21 03:36, , 4F
或者一樣是檢測的 動態的那一部份code最後加一個check=1;
12/21 03:36, 4F

12/21 03:36, , 5F
然後去檢查check是否真是1了 是就OK
12/21 03:36, 5F

12/25 17:01, , 6F
最後改成那些動態產生的內容用JSON格式透過XHR動態load進來
12/25 17:01, 6F

12/25 17:02, , 7F
這樣一來原始頁面的產生時間也快了一點 :P
12/25 17:02, 7F
文章代碼(AID): #17QZ4mte (Ajax)