2012-11-20 54 views
-1

正如標題所說,有什麼問題嗎?使用過多的livequery可能會出現性能問題

例如,我用他們這樣說:

$("abbr.timeago").livequery(function() { 
    $(this).timeago(); 
}); 

$("#btnPhoto").livequery(function() { 
    createUploader(); 
}); 

$("#inputTagline").livequery(function() { 
    $(this).charCount(); 
});; 

編輯 enter image description here 我的網頁單獨使用了100K的內存。
提供的頁面內容由ajax生成,您是否有人知道如何解決.timeago()問題?我真的很感激。謝謝

UPDATE 現在我可以通過@Linas回答下面擺脫livequery。 歡迎任何更好的答案!

+4

可能的重複[livequery performance](http://stackoverflow.com/questions/4818020/livequery-performance)。 –

+0

更好的代理/生活,但你的項目是什麼?它總是取決於你的需求。 –

+0

爲什麼downvote?我只是想意見T_T ..... jquery.timeago();需要livequery來檢測動態生成的元素。這就是爲什麼我使用它。我知道jquery.on,但它需要發生一些事件,例如「點擊」。 –

回答

0

我正在研究類似於您的項目,而且我也使用了時間插件,所以我現在面臨同樣的問題。

我做了什麼是我做了一個幫手功能,它執行各種東西,如更新時間,刪除未使用的內容等。因此,當我更新我的頁面上的任何內容並因此節省大量內存時,而不是使用livequery,只需調用該助手函數即可。

編輯 這是您爲自己創建只是一個很簡單的功能:每次你使用某種功能的時間,這之後它通過AJAX更新內容

function helper(){ 
    //update all time that exists on current page 
    //just put same class name in each time object for example class="time_ago" 
    //now it will update each object with class "time_ago" 
    $(".time_ago").timeago(); 
    //now do some other stuff like remove old content unbind events and so on here... 
} 

並調用helper()它會照顧你需要的東西,無需擔心插件,以及它們的性能,因爲你可以完全控制你的腳本。

+0

我無法獲得您正在使用的幫助功能,請不要介意給出一個簡短的示例。 XD順便說一句,我猜:當調用jquery.on時,你調用輔助函數來更新「blablabla」?我對嗎? –

+0

@TianLoon我已經更新了我的答案。 – Linas

+0

謝謝,至少這個解決了我此刻XD的問題 –

相關問題