2014-03-27 85 views
0

我正在用C#和MVC5构建新闻网站。我也使用MsSQL。在这个项目中,我将所有东西都作为局部视图,当我需要时,我调用组件并将它放入需要的部分(将组件绑定到db等部分)。出现性能问题。其中之一是从jquery延迟加载。延迟加载组件加载

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

我该如何解决这个问题?

编辑:我使用; jquery.lazyload.js和在意见(cshtml)我做我的img标签这样;

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

+1

向我们展示的代码/ HTML是如何structed /如何延迟加载 – SynerCoder

+0

你可以检查编辑。 –

回答

1

我看着从Jquery.Lazyload的文件,发现如下:

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

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

设置failure_limit至10原因插件来停止搜索图像 找到倍低于10个图像之后加载。如果你有一个时髦的 布局将这个数字设置得很高。最糟糕的情况是实际的 图片数量。

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


我为此假设你的侧边栏在HTML页面的底部定义,以不加载,直到您向下滚动。


小更新:

在文档如下提示:由于你没有HTML或CSS它可能不会在所有浏览器正常工作定义宽度/高度。

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

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

+0

首先,谢谢你的回答,我现在正在尝试。 Failure_Limit:10没有改变任何东西,现在我会尝试将它们放在底部。 –

+0

如果您的侧边栏中有多于10张图片,则无法使用。但让我知道 – SynerCoder

+0

尝试一个超高的数字,例如9999,如果它仍然不起作用,它是别的东西 – SynerCoder