延迟加载组件加载

时间:2014-03-27 12:37:12

标签: c# jquery asp.net-mvc lazy-loading asp.net-mvc-5

我正在使用C#和MVC5构建新闻网站。我也使用MsSQL。在这个项目中,我将所有内容都视为部分视图,在需要时,我调用组件并将其放入需要的部分。(将组件绑定到db等部分。)

现在我差不多完成了,而且我遇到了性能问题。其中一个是来自jquery的延迟加载。

我滚动网页底部,主要部分延迟加载工作,但在右侧,有组件(如,大多数阅读新闻,大多数评论新闻)他们不延迟加载,直到主要部分的滚动结束。完成主要部分的滚动后,在右侧,组件图像开始出现。

我该如何解决这个问题?

编辑:我用; jquery.lazyload.js以及在视图(cshtml)中我制作了img这样的标签;

<img class="lazy" src="/assets/img/lazyload.gif" data-original="blabla.jpg"/>

1 个答案:

答案 0 :(得分:1)

我查看了Jquery.Lazyload的文档,发现了以下内容:

  

图像不连续时滚动页面插件循环后   虽然卸载图像。循环检查图像是否可见。通过   找到视口外的第一个图像时,将停止默认循环。   这基于以下假设。页面上的图像顺序是相同的   作为HTML代码中的图像顺序。有些布局假设这个   可能是错的。您可以使用failure_limit控制加载行为   设置。

$("img.lazy").lazyload({
    failure_limit : 10
});
     

failure_limit设置为10会导致插件停止搜索图像   在折叠后找到10张图片后加载。如果你有一个时髦的   layout将此数字设置为高位。最坏的情况是实际的   图像数量。

来源:http://www.appelsiini.net/projects/lazyload


因此我假设您的侧边栏是在html页面的底部定义的,因此在您向下滚动之前不会加载。


小更新:

在文档中有以下提示:由于您没有在html或css中定义宽度/高度,因此它可能无法在所有浏览器中正常工作。

  

PRO TIP!您必须将图像尺寸设置为宽度和高度属性或CSS。否则插件可能无法正常工作。

来源:http://www.appelsiini.net/projects/lazyload