2009-11-20 75 views
4

有沒有這樣的jQuery插件?用於延遲加載/懶惰評估的JQuery插件?

更具體: 我想用一些優雅和簡單的方法推遲一些代碼執行,直到真正需要(某些事件發生)。當這個事件發生時,推遲的代碼應該只執行一次。某種惰性初始化。

例如,在文檔準備就緒時,但當用戶懸停在該元素上時,將某些動畫應用於元素。

我知道如何做到手動方式,但我不喜歡它,因爲我必須考慮在執行匿名函數之前檢查和設置「初始化」標誌。我想知道它是否已經完成(沒有bug,有一些好吃的功能)。

回答

4

http://plugins.jquery.com/project/LazyReady

懶人準備 旨在延緩代碼初始化到指定的DOM元素(一個或多個)插件是互動(徘徊/專注)。

+0

有趣的發現。但是想到一個問題。 (對不起)您花了多少時間找到這個代碼而不是編碼;) – jitter 2009-11-20 22:20:33

+6

實際上約5分鐘。這不是節省時間的問題。純粹的開發人員的好奇心和願意溝通。這就是stackoverflow的目的,不是嗎? :) – 2009-11-21 12:58:03

2

回答更具體的問題:

你真的不需要任何插件嗎?只要沿着這些路線做點什麼。

僅當用戶點擊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

+0

編輯我的問題。現在更具體。 – 2009-11-20 18:58:09

+0

+1爲無痛Javascript惰性加載文章。 – 2009-11-20 19:24:04

+0

不幸的是,它沒有指定它在IE8中的工作,只是6和7. – 2009-11-20 19:37:30