我有一个XML引用,引用了相当大的外部图像文件(200kb)。它们导致真正的加载时间过长,从而导致页面崩溃。在一个div中,我加载了20个像这样的图像。每个div都在单独的部分中加载。这些部分(product
_item)需要40-400毫秒才能加载(!),主要是因为大图像。Rails在不崩溃的情况下加载较大的外部图像
外部图像需要是外部的(所以任何AWS解决方案)都不起作用。
的“慢部分”是折叠的下方,可以很容易地隐藏“直到需要”。
<div id="slow-portion">
<% @product.each do |product| %>
<%= render 'product_item' %>
<% end %>
</div>
我刚刚实施,我认为会解决这个问题的图像(http://www.appelsiini.net/projects/lazyload)的延迟加载,但它似乎像页面仍然会等到一切都被加载(包括大型图像文件),它显示的页面之前。每个product_item的加载时间仍然相同。
这是已经非常令人沮丧,所以我想知道,在相当一般来讲,我应该怎么解决这个问题。
- 是否有可能在Rails中超时部分。即如果“慢速部分”在3秒内未加载,它不应该显示?
- 图像的延迟加载是否应该解决这类问题?即这是我应该解决问题的麻烦吗?
- 我可以解决这个页面的慢部分的Ajax加载?基本上,该部分将显示一个“等待符号”,直到“慢速部分”完全加载完毕?
- 是否有任何其他方式不会导致崩溃(503错误)和超时由于视图加载时间太大?
的任何解决方案,将工作是为我好!
您的product_item模板的外观如何? – arjabbar
它有一个标题标题,一个image_tag和一个链接。 – Christoffer
基本上,浏览器读取图像需要400ms?不是服务器对'
'标签的实际渲染权限?如果你使用'curl'或'wget'来获取这个页面,那么它会加载相对较快的权利? –
arjabbar