我有一个类似滑块的小部件,基本上是一个包含一些页面内容(与图像一起)的子div的div。
最初,除主要部分外,所有子div都被隐藏。
我的问题是,所有网页浏览器似乎都加载(请求)内容中的所有图片,无论它们是否隐藏。
在我的具体情况下,它最终将一次加载大约350张图像。这是一个很多,特别是在考虑图像至少 200kb 时。实际上,网络日志指定网站总大小在 6mb到7mb 的范围内。
所有这些图像都会阻碍页面加载,特别是因为它们需要在其他页面元素之前加载(例如;按钮等)。
我的问题的解决方案是什么?我尝试过的事情:
display:none;
加载图像。<img alt="abc.jpg" src="about:blank"/>
,然后当tab切换时,我会用jQuery正确修复标记。我还没有尝试过这个,是否可取?答案 0 :(得分:1)
好吧,正如我在问题中暗示的那样,可以通过以下技巧实现可能的解决方案:
<?php
// server-side content
echo str_replace(' src=', ' data-dly="" src="blank.gif" data-src="', $html);
?>
// client-side script
function showPage(id){
hidePages();
var page = jQuery('#page'+id);
page.find('img[data-dly="1"]').each(function(){
jQuery(this).attr('src',jQuery(this).attr('data-src'));
}).removeAttr('data-dly').removeAttr('data-src');
page.fadeIn();
}
注意:感谢 @jeffreydev 提供的帮助。