以前的一些總結:頁面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...