使用太多livequery时可能出现的性能问题

时间:2012-11-20 02:42:19

标签: jquery html performance

正如标题所说,有什么问题吗?

例如,我用这种方式使用它们:

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

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

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

修改 enter image description here 我的网页单独占用了100k内存。
提供的页面内容由ajax生成,你们中的任何人都知道如何解决.timeago()问题吗?我真的很感激。感谢

更新 现在我可以通过下面的@Linas answe摆脱现场查询。 欢迎任何更好的答案!

1 个答案:

答案 0 :(得分:0)

我正在处理与你类似的项目,我也使用很久以前的插件,所以我现在面临同样的问题。

我做的是我做了一个帮助函数,它执行更新时间等各种事情,删除未使用的内容等等。因此,当我更新页面上的任何内容并因此节省大量内存时,我只需调用该辅助函数,而不是使用livequery。

修改 这只是你为自己创造的一个非常简单的功能:

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(),就可以通过ajax更新您的内容,它会处理您需要的内容,无需担心插件及其性能,因为您完全控制你的剧本。