当前位置: 首页 > Web前端 > HTML

性能优化:滚动时卡住

时间:2023-03-28 13:58:43 HTML

测试报线上bug,某客户网站滚动时卡住。(我在这个项目上干了半年,去年10月离开这个项目去做其他项目,偶尔也在bug反馈群里帮他们修复一些其他人处理不了的bug。)有同事说它无法被复制。他的电脑上网不是很卡,我教他怎么用chromedevelopertools的Performance。有很多长任务报红,滚动时一段js需要执行100多毫秒。不管页面看起来卡不卡,优化到不报红,30到40毫秒就ok了。看了一下函数调用栈和项目的代码,因为lazyload在循环中初始化了很多次。大概这样写:window.addEventListener('scroll',()=>{页面上的所有widget.forEach((widget)=>{if(widget在页面可见区域){播放widget动画()$('img').lazyload({//一些lazyload配置项})}})})我问了同事添加这段代码的目的,因为在某些特殊情况下,如果在widget中添加动画,lazyload失败,无法显示图片。要显示的图片应该有单独的api。全局应该只有一个lazyload初始化。应该改成这样:$('#Pendantidimg').trigger('appear')修改后没有长任务报红。代码是4月份加的,8月底才发现,已经上线4个月了。。。想知道如何避免此类问题//未完待续TODO