纯js 图片异步加载原理及实现

最近自己做了一个个人网站 茶余饭后网 http://www.cyfhw.top

在做页面优化时,首先是 js 异步加载。其次就是 图片异步加载。


关于页面优化 可以看:雅虎网站页面性能优化的34条黄金守则http://blog.csdn.net/hch126163/article/details/5966021


做图片异步加载时,我第一次用了最简单的方法。

直接后台 修改 img src 属性为 data-src 属性。浏览器不认识 data-src ,页面加载时,浏览器就不会去加载图片。

js 修改 img  data-src 属性为 src,此时 浏览器 就会去下载图片了。 图片异步加载,完美实现,测试也没什么问题。

js 代码如下:

var imgs = document.getElementsByTagName("img");
	for(var i=0,l=imgs.length;i<l;i++){
  
		var url = imgs[i].getAttribute("data-src");
		if(!imgs[i].src && url){
			imgs[i].src = url;
		}
	}
 
这个代码用了一段时间,也没发现什么问题。我个人认为,一个页面图片不多【小于20张】的情况下,这样的方式异步加载完全没有问题!

                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PC端上拉加载常用的实现原理是通过监听滚动事件来判断用户是否滚动到页面底部,从而触发加载更多数据的操作。这里可以使用JavaScript编写相关的代码来实现。 首先,需要获取到页面的滚动条位置,可以利用`window`对象的`scrollY`属性来实现。当滚动条的位置接近了页面底部时,就可以加载更多的数据。 其次,需要监听页面的滚动事件,可以使用`window`对象的`onscroll`事件来实现。当滚动事件触发时,可以执行相关的逻辑判断。 在滚动事件的处理函数中,首先需要获取页面的高度以及滚动条的位置,可以分别使用`document`对象的`body`属性的`scrollHeight`属性和`scrollTop`属性来实现。然后,可以判断滚动条的位置是否接近了页面底部,可以通过以下的逻辑来实现: ```javascript if ((window.innerHeight + window.scrollY) >= document.body.scrollHeight) { // 加载更多数据的操作 } ``` 当滚动条的位置接近了页面底部时,就可以触发加载更多数据的操作,可以在这里编写相应的加载逻辑,例如向后台发送请求获取数据。一般来说,可以使用Ajax来实现异步请求数据,然后将获取到的数据插入到页面的相应位置上。 最后,需要注意在加载数据的过程中需要进行相应的处理,例如显示加载动画、禁止用户重复触发加载等,以提升用户体验。 综上,PC端上拉加载通过监听滚动事件来判断滚动条是否接近页面底部,从而触发加载更多数据的操作。这个实现原理可以通过JavaScript来实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值