有沒有這樣的jQuery插件?用於延遲加載/懶惰評估的JQuery插件?
更具體: 我想用一些優雅和簡單的方法推遲一些代碼執行,直到真正需要(某些事件發生)。當這個事件發生時,推遲的代碼應該只執行一次。某種惰性初始化。
例如,在文檔準備就緒時,但當用戶懸停在該元素上時,將某些動畫應用於元素。
我知道如何做到手動方式,但我不喜歡它,因爲我必須考慮在執行匿名函數之前檢查和設置「初始化」標誌。我想知道它是否已經完成(沒有bug,有一些好吃的功能)。
有沒有這樣的jQuery插件?用於延遲加載/懶惰評估的JQuery插件?
更具體: 我想用一些優雅和簡單的方法推遲一些代碼執行,直到真正需要(某些事件發生)。當這個事件發生時,推遲的代碼應該只執行一次。某種惰性初始化。
例如,在文檔準備就緒時,但當用戶懸停在該元素上時,將某些動畫應用於元素。
我知道如何做到手動方式,但我不喜歡它,因爲我必須考慮在執行匿名函數之前檢查和設置「初始化」標誌。我想知道它是否已經完成(沒有bug,有一些好吃的功能)。
http://plugins.jquery.com/project/LazyReady
懶人準備 旨在延緩代碼初始化到指定的DOM元素(一個或多個)插件是互動(徘徊/專注)。
Lazy Load是否會延遲加載圖像。
回答更具體的問題:
你真的不需要任何插件嗎?只要沿着這些路線做點什麼。
僅當用戶點擊ID爲lazyelement
且僅有一次的元素時,纔會觸發功能postponedHeavyFunction()
。
function postponedHeavyFunction() {
// unbind. This guarantees that postponedHeavyFunction will only
// execute once for the event we bound it to #lazyelement
$("#lazyelement").unbind('click', postponedHeavyFunction);
...
//do whatever
....
}
//when event is triggered the function you specify gets run
$("#lazyelement").bind('click', postponedHeavyFunction);
檢查http://jsbin.com/agora/進行死蠢的示範。
你究竟想要什麼。什麼應該是懶加載/懶惰評估?更加詳細一些。
惰性評估(從其他語言獲知)AFAIK本身不支持Javascript(作爲語言概念)。除了運營商如&
,|
,&&
,||
。
如果你只是想要一些JavaScript來延遲加載其他腳本看看這個:Painless JavaScript lazy loading with LazyLoad
編輯我的問題。現在更具體。 – 2009-11-20 18:58:09
+1爲無痛Javascript惰性加載文章。 – 2009-11-20 19:24:04
不幸的是,它沒有指定它在IE8中的工作,只是6和7. – 2009-11-20 19:37:30
有趣的發現。但是想到一個問題。 (對不起)您花了多少時間找到這個代碼而不是編碼;) – jitter 2009-11-20 22:20:33
實際上約5分鐘。這不是節省時間的問題。純粹的開發人員的好奇心和願意溝通。這就是stackoverflow的目的,不是嗎? :) – 2009-11-21 12:58:03