当前位置: 首页 > news >正文

网站建设上线流程烟台网站排名优化价格

网站建设上线流程,烟台网站排名优化价格,百度seo优化系统,赣州互联网哪家好一、Lazyload的理解分析 Lazyload技术是一种延迟加载技术,让页面加载速度快到飞起、减轻服务器压力、节约流量、提升用户体验 实现思路 1)页面较长,屏幕的可视区域有限 2)不设置页面中img标签的src属性值或者将其指向同一个占位图…

一、Lazyload的理解分析

  1. Lazyload技术是一种延迟加载技术,让页面加载速度快到飞起、减轻服务器压力、节约流量、提升用户体验

  2. 实现思路
    1)页面较长,屏幕的可视区域有限
    2)不设置页面中img标签的src属性值或者将其指向同一个占位图
    3)图片的实际地址存在img标签自定义的一个属性中,如:“data-url”
    4)监听scroll,滚动到某个位置时,动态的将url替换成实际的“data-url”

  3. 流程图分析:
    在这里插入图片描述

  4. 代码实现
    html部分:

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>Lazyload</title><style type="text/css">.mob-wrap li{list-style: none;width: 100%;height: 345px;}</style></head><body><ul class="mob-wrap"><li"><img class="tamp-img" alt="loading" data-src="http://mob.com/public/images/index/sharesdk-logo.jpg"><p>ShareSDK轻松实现社会化功能</p></li><li"><img class="tamp-img" alt="loading" data-src="http://mob.com/public/images/index/sms-logo.jpg"><p>短信验证码SDK</p></li><li"><img class="tamp-img" alt="loading" data-src="http://mob.com/public/images/index/rec-logo.jpg"><p>MobLink实现Web与App的无缝链接</p></li></ul></body>
</html>

js部分:

var aImg = [{"src":"http://mob.com/public/images/index/sharesdk-logo.jpg","txt":"ShareSDK轻松实现社会化功能"},{"src":"http://mob.com/public/images/index/sms-logo.jpg","txt":"短信验证码SDK"},{"src":"http://mob.com/public/images/index/rec-logo.jpg","txt":"MobLink实现Web与App的无缝链接"}
];
var sLi = '';
document.getElementsByClassName("mob-wrap")[0].innerHTML="";
for(let i = 0;i<10;i++){sLi = document.createElement("li");sLi.innerHTML = `<img class="tamp-img" alt="loading" src="./zwt.gif" data-src="${aImg[i%3].src}"><p>${aImg[i%3].txt}</p>`;document.getElementsByClassName("mob-wrap")[0].appendChild(sLi);
};window.onscroll = function () {var bodyScrollHeight =  document.documentElement.scrollTop;// body滚动高度var windowHeight = window.innerHeight;// 视窗高度var imgs = document.getElementsByClassName('tamp-img');for (var i =0; i < imgs.length; i++) {var imgHeight = imgs[i].offsetTop;// 图片距离顶部高度 if (imgHeight  < windowHeight  + bodyScrollHeight - 340) {imgs[i].src = imgs[i].getAttribute('data-src');imgs[i].className = imgs[i].className.replace('tamp-img','');}}
};

二、Lazyload的再优化

  1. 不做任何处理直接监听scroll必然导致在滚动鼠标滚轮的时候,过于频繁的触发处理函数。如果刚巧在处理函数中有大量的操作dom等消耗性能的行为,引发大量操作,导致页面变卡变慢,甚至浏览器崩溃无响应,处理这种问题的思路是节流和防抖
  2. 节流函数的形象比喻,比如在接咖啡的时候,按了一次按钮会出咖啡,紧跟着再按几次按钮接到的还是那一杯咖啡,相当于后面几次按的没有起作用
  3. 每隔least时间内至少执行一次的节流函数
    1)代码如下:
//节流函数
_throttle = (fn, delay, least) => {var timeout = null,startTime = new Date();fn();return function() {var curTime = new Date();clearTimeout(timeout);if(curTime - startTime >= least) {fn();startTime = curTime;}else {timeout = setTimeout(fn, delay);}}
}

2)使用节流函数:
代码如下:

function compare () {var bodyScrollHeight =  document.documentElement.scrollTop;// body滚动高度console.log(bodyScrollHeight+"替换src方法")var windowHeight = window.innerHeight;// 视窗高度var imgs = document.getElementsByClassName('tamp-img');for (var i =0; i < imgs.length; i++) {var imgHeight = imgs[i].offsetTop;// 图片距离顶部高度 if (imgHeight < windowHeight + bodyScrollHeight - 340) {imgs[i].src = imgs[i].getAttribute('data-src');imgs[i].className = imgs[i].className.replace('tamp-img','');}}
}
window.onscroll = _throttle(compare, 350,600);

3)说明:滚动时间least长于600,调用compare,否则延迟350ms执行。这样相对于直接onscroll性能得到更进一步提升,在功能上也没有什么问题,不同的业务场景调整一下delay和least就可以

http://www.yayakq.cn/news/433230/

相关文章:

  • 百度网站优化排名青岛胶南做网站的有多少
  • 鲜花网站数据库建设分析中信建设有限责任公司四川分公司
  • 电商网站设计培训家具营销策划方案
  • 金属材料网站建设艾艺公司团队定制
  • 公司做网站的招标书折页彩页设计
  • 网站代码500汾阳网架公司
  • 小挑可以做网站吗银川做网站最好的公司
  • 桃城区网站制作公司ppt超级市场
  • 祁阳网站建设123网络之家主页
  • 东莞网站建设熊掌号中国建筑第八工程局有限公司
  • 海口网站建设公司怎么用lofter做网站
  • 为网站网站做代理.net网站开发文档
  • 企业网站教程 优帮云效果图制作公司哪家好
  • wordpress动漫视频网站手机表格制作免费软件下载
  • 太原网站建设优化中国工信部备案查询系统
  • 企业网站建设劣势沙发网站建设
  • 山西网站建设鸣蝉企业网站建设优化
  • 做网站属于什么技术网站建设的总体设计思想
  • 凌源网站优化注册电商平台怎么注册
  • 网站推广服务合同模板怎么做提升自己的网站
  • python建设购物网站网站建设每年有维护费吗
  • 建设电子商务网站的试卷wordpress的模板是什么
  • 无锡市住房和城乡建设部网站域名访问wordpress
  • 视频网站建设框架河南移动官网网站建设
  • 长春建设工程信息网站wordpress哪种语言
  • 全国物流网站有哪些平台自适应网站开发
  • 手表网站推荐做网站是什么专业什么工作
  • 能够做渗透的网站wordpress文章数据太多
  • 怎么选择网站开发公司网站备案管局
  • 有哪些好的响应式网站有哪些wordpress栏目列表页