栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

延迟加载图像的方式

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

延迟加载图像的方式

四个选项:

这是您的三个选择:

使用背景图片

如果这对您不起作用,我假设您仅需要有关启用Javascript的内容的帮助,因为您说过非Javascript用户会看到其他页面。

使用插件

分页 已完成
。您在评论中说过您正在使用jQuery。有很多用于分页的jQuery插件。找到您喜欢的一个,然后使用它。它们的质量各不相同,因此您需要对其进行测试并检查其代码,但是我敢肯定那里有质量不错的代码。

服务器端分页

在这里可以加载主页,而根本不加载任何产品,或者仅加载产品的第一页。通常,您会将所有产品放入容器中,如下所示:

<ul id='productList'></ul>

然后,您将具有通常的UI控件,可在结果页面之间移动。您将拥有一个服务器端资源,该资源返回可用于填充该列表的HTML代码段或JSON格式的数据。为了简单起见,我将使用HTML(尽管我可能会在生产应用程序中使用JSON,因为它会更小)。每个产品条目都是其自己的独立模块:

<li id='product-001'>  <div>This is Product 001</div>  <img src='http://www.gravatar.com/avatar/88ca83ed97a129596d6e8dd86deef994?s=32&d=identicon&r=PG'>  <div>Blurb about Product 001</div></li>

…然后页面返回您认为合适的任意数量。您使用Ajax请求页面,并使用Javascript更新产品列表。既然您已经说过使用jQuery,这可以很简单:

$('#productList').load("/path/to/paging/page?start=X&count=Y");

这是一个示例原型(不是生产代码);它伪造了Ajax,因为JSBin给了我Ajax问题。

进行一次大页面下载,然后进行客户端Javascript分页

我不确定您如何进行过滤,但是如果您有一个包含产品信息的元素,则可以将图像URL存储在其

data-xyz
属性中:

<div id='product-123' data-image='/images/foo.png'>

然后,当您的代码使该代码可见时,您可以轻松地

img
向其中添加一个:

var prod, imgsrc, img;prod = document.getElementById('product-123');prod.style.display = 'block'; // Or whatever you're doing to show itimgsrc = prod.getAttribute('data-image');if (imgsrc) {    img = document.createElement('img');    img.src = imgsrc;    prod.appendChild(img); // You'd probably put this somewhere else, but you get the idea    prod.removeAttribute('data-image');}

编辑 在其他地方的评论中,您说您正在使用jQuery。如果是这样,上面的翻译可能像这样:

var prod, imgsrc, img;prod = $('#product-123');prod.show();imgsrc = prod.attr('data-image');if (imgsrc) {    $("<img/>").attr('src', imgsrc).appendTo(prod); // You'd probably put this somewhere else, but you get the idea    prod.removeAttr('data-image');}

隐藏时无需再次删除它,因为该图像已经显示,这就是为什么我们一旦使用该属性就将其删除。

我使用

data-
前缀的原因是验证:从HTML5开始,您可以定义自己的
data-xyz
属性,而页面仍将通过验证。在早期版本的HTML中,不允许您定义自己的属性(尽管实际上没有主要的浏览器关心),因此,如果为此使用了自己的属性,则该页面将无法验证。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/420962.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号