用于延迟加载/延迟评估的JQuery插件?

时间:2009-11-20 16:21:40

标签: jquery jquery-plugins lazy-loading lazy-evaluation

是否有这样的jQuery插件?

更具体: 我想使用一些优雅而简单的方法推迟一些代码执行,直到它真正需要(某些事件发生)。当这个事件发生时,推迟的代码应该只执行一次。某种懒惰的初始化。

例如,将某些动画应用于元素,而不是在文档准备就绪时,但是当用户将鼠标悬停在该元素上时。

我知道如何以手动方式实现,但我不喜欢它,因为我必须考虑在执行匿名函数之前检查并设置'initialized'标志。我想知道它是否已经完成(没有错误,有一些美味的功能)。

3 个答案:

答案 0 :(得分:4)

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

懒惰 一个插件,旨在延迟代码初始化,直到指定的DOM元素与之交互(悬停/聚焦)。

答案 1 :(得分:2)

Lazy Load会延迟加载图片。

答案 2 :(得分:2)

回答更具体的问题:

你真的不需要任何插件吗?只是沿着这些方向做点什么。

只有在用户点击ID为postponedHeavyFunction()的元素并且仅点击一次后,才会触发功能lazyelement

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/是否有愚蠢的演示。


你到底想要什么?什么应该是懒惰加载/懒惰评估?更具体。

懒惰评估(从其他语言知道)Javascript本身不支持AFAIK(作为语言概念)。除了可能适用于&|&&||等运营商。

如果您只是想让一些javascript延迟加载,其他脚本会查看:Painless JavaScript lazy loading with LazyLoad