[問題] 請教幾個關於onload的事件行為
1. 執行window.location.reload()後
可以馬上在window、document或body裡面放入load事件的handler嘛?
這些handler是不是可能在reload的過程中被清除掉?
或是要body.addEventListener時,body還根本不存在?
2. 是不是window.location.reload()後,等到完全載入了,才會開始body的load事件的
"propagation->handler->bubbling"三步驟?
因為load事件是不會bubbling的,所以只能在propagation階段抓到。這時候抓到可以確
保body已經load完畢了嘛?
3. 我有用Date寫一個小函式,用迴圈檢查經過指定秒數後才會離開迴圈
這樣的方法來做為程式的延遲,這樣的方法有沒有可能讓迴圈完全佔用CPU
而使得事件也被延後執行?
也就是說,是不是只要延遲有限的時間,一定可以讓事件都被執行?
4. 那如果用setTimeout()能夠做為第3點要的功能的機制嘛?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.121.2.83
→
07/23 00:08, , 1F
07/23 00:08, 1F
→
07/23 00:12, , 2F
07/23 00:12, 2F
→
07/23 00:12, , 3F
07/23 00:12, 3F
→
07/23 00:13, , 4F
07/23 00:13, 4F
※ 編輯: forgmonkey 來自: 59.121.2.83 (07/23 00:15)
→
07/23 07:25, , 5F
07/23 07:25, 5F
→
07/23 07:30, , 6F
07/23 07:30, 6F
→
07/23 07:33, , 7F
07/23 07:33, 7F
→
07/23 07:35, , 8F
07/23 07:35, 8F
感謝fillano,實際上我在寫firefox extension,我沒有用JQuery。
那想在請問一下,window因該不是檔案的部份,那window.document算是檔案的一部分嘛?
實際上我從extension內對window.addEventListener,不論是不是在capture階段捕捉
reload之後handler都沒被觸發。
我現在是對firefox內該分頁瀏覽器的<xul:browser>掛
load的handler,可以在capture階段收到event
然後在這個handler裡面再對window的load在掛一個handler
而且很詭異的,不論是不是capture都可以執行
(load不會bubble,所以在bubble phase因該抓不到)
但是結果是保證會是在body.onLoad之後執行
(這很也詭異,不過看了timer的文章後了解了原因)
但是我在window onLoad的handler裡面 對網頁元素觸發click事件
卻是沒有效果的,現在這在苦惱這個問題
兩層的callback可能有點複雜...
重點是不能用啊啊啊啊~~~
文件看完了,原來整個都是單一執行緒
然後從thread pool裡面挑出來放到queue
不過他怎麼決定何時是可以中斷現在的block的時機?
如果迴圈可以被中斷,那事件是有可能被執行掉的(雖然我覺得不可能 XD)
※ 編輯: forgmonkey 來自: 59.121.1.14 (07/23 10:05)
※ 編輯: forgmonkey 來自: 59.121.1.14 (07/23 10:07)
※ 編輯: forgmonkey 來自: 59.121.1.14 (07/23 10:09)
※ 編輯: forgmonkey 來自: 59.121.1.14 (07/24 10:13)
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章