[問題] 如何在頁面載入中的時候就執行script程式?

看板Ajax作者 (香蕉共和國)時間10年前 (2015/06/05 13:42), 10年前編輯推噓2(209)
留言11則, 2人參與, 最新討論串1/1
如果要做一個簡易的「載入中」標語在頁面正在載入中時顯示,只要在onload裡頭執行把 「載入中」標語的display設成none即可在頁面載入中時顯示「載入中」標語,等所有都載 入完以後就會執行onload裡頭的程式,也就是讓「載入中」標語消失。 那麼有沒有辦法剛好相反,在載入中時執行某段script程式,而在所有都載入完以後就停 止執行該script程式? 或者是說,能不能在載入中時就執行某script程式,載入完成之後 依舊「繼續」執行該script程式? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 219.80.128.160 ※ 文章網址: https://www.ptt.cc/bbs/Ajax/M.1433482954.A.56B.html

06/05 14:36, , 1F
用flag?
06/05 14:36, 1F

06/05 14:36, , 2F
開頭呼叫某script並結尾偵測flag決定要不要recall
06/05 14:36, 2F

06/05 14:36, , 3F
然後loading完之後修改flag讓他執行完跳出不recall?
06/05 14:36, 3F

06/05 14:37, , 4F
或者用settimeout去repeat然後onload之後clear?
06/05 14:37, 4F
請問是不是要等所有網頁的進度都載入了才會開始執行所有的javascript? 還是只要把script放在最前端,即使網頁還沒開始載入html部分,它就會自己先執行了? ※ 編輯: banana2014 (219.80.128.160), 06/05/2015 17:04:00

06/05 22:07, , 5F
個人理解:一開始就會執行了吧?不然也不用onload
06/05 22:07, 5F

06/05 22:07, , 6F
不過因為裡面這時抓不到document內的東西,所以一般
06/05 22:07, 6F

06/05 22:08, , 7F
不會這樣寫。看你要幹嘛用。 有錯請鞭
06/05 22:08, 7F

06/05 22:39, , 8F
一開始就會執行 除非你加上defer attribute
06/05 22:39, 8F

06/05 22:40, , 9F
瀏覽器在載入沒有defer的script tag時,在所有程式皆
06/05 22:40, 9F

06/05 22:40, , 10F
載入並執行完畢之前不會繼續往下讀取HTML
06/05 22:40, 10F

06/05 22:41, , 11F
這也是為何一般會建議你把所有script tag擺到最後
06/05 22:41, 11F
文章代碼(AID): #1LSJRALh (Ajax)
文章代碼(AID): #1LSJRALh (Ajax)