yui3下的load事件觸發

2021-08-25 06:13:01 字數 841 閱讀 8139

以前的一些總結:頁面load 與 資源load ,這次提出來乙個window的load事件觸發問題以及解釋一下在 yui3 中問題的解決。

問題:

非同步指令碼對頁面的影響:

我們知道 window 的load事件只會在頁面載入完畢後觸發一次且僅一次,如果你沒有在頁面載入前listen這個事件,則以後都沒機會了。(為了簡便不使用addlistener了)

例如下面**:

使用了yui3的非同步載入指令碼後,同樣原理:

而 fire 為了避免這點採取了3點:

3.2.1.一旦觸發事件,則該事件的 fired=true ,標記事件是已經 fire 了:

fire :function()

3.2.2.為 load 事件特殊標記,load只會真正fire一次:

if (el == y.config.win && type == "load")
3.2.3.如果遇到 fired 以及 fireonce ,則 fire 直接返回,真正的觸發在 on 的時候就開始了,只對當前的

乙個subscriber觸發

_on: function(fn, context, args, when) 

//.....

總結

這樣的話,盡可能的在普通事件監聽的框架在解決了非同步 load 的問題,雖然仍存在點 if ,但畢竟什麼都沒有完美的,

對於標準瀏覽器下的domready判斷同理,但是對於ie就不一樣了以後再寫

在YUI3下列印Panel內容

最近在用yui3.5製作乙個報表 遇到個問題,需要列印報表,但是yui下我是通過model化panel來顯示報表內容的,一列印就把整個網頁打出來,結果是背景完全是亂的,樣式也不正常 yui3的panel也是通過div實現的,於是想是否能通過只列印div內容方式實現 在網上搜尋了下,列印div本身還是...

Flickr使用YUI3重構時遇到的問題

上週做yuiconf2010介紹分享時沒有作為重點的 porting flickr to yui3 卻被大家關注。所以回來仔細看了一遍video又得到了新概念 感知效能。porting flickr to yui3 的分享者ross harmes是flickr的前端開發工程師,在這次會議上他主要分享...

EPOLL ET 模式下事件觸發的場景

et模式稱為邊緣觸發模式,顧名思義,不到邊緣情況,是死都不會觸發的。epollout事件 epollout事件只有在連線時觸發一次,表示可寫,其他時候想要觸發,那你要先準備好下面條件 1.某次write,寫滿了傳送緩衝區,返回錯誤碼為eagain。2.對端讀取了一些資料,又重新可寫了,此時會觸發ep...