我有这段代码,它从数据库中获取imgs文件名,并简单地将它们显示在网格中。麻烦的是,客户添加了宽大的图片,有一些加载时间。出于某种原因,浏览器以随机顺序加载图像,或者可能首先加载较小的图像。
我希望浏览器按照它们在代码中出现的顺序逐个加载图像,顶部图像,然后是波纹管等。
一个评论 - 该页面还有其他一些图像,它不是唯一的网格。另一个评论 - 我应该考虑组合加载 GIF 吗?
<?php
$result = mFiles($id);
if ($result) {
while ($row = $result->fetch()) {
$theFile=$row['img2'];
}
?>
<div style="float:left;width:100%;">
<img src="images/upload/files/<?php echo($theFile); ?>" />
</div>
提前非常感谢!!
您可以使用 JQuery 的延迟加载插件
添加引用:
<script src="jquery.js" type="text/javascript"></script>
<script src="jquery.lazyload.js" type="text/javascript"></script>
修改你的代码,比如,
<div style="float:left;width:100%;">
<img class="lazy" src="img/loading.gif" data-original="images/upload/files/<?php echo($theFile); ?>" />
</div>
然后使用 $("img.lazy").lazyload();
延迟加载页面中具有类"lazy"的所有图像。
如果您不希望显示加载图像,只需创建一个 1x1 空白图像,这应该可以解决问题。
参考:GitHub 上的来源
附言检索图像的顺序取决于其在数据库中的存储方式。
希望这有帮助。 :)