本文主要通过实例介绍JS图像稳定器是如何讲解的。文章通过示例代码非常详细,对于大家的学习或者工作都有一定的参考价值,有需要的朋友可以参考一下。
前言
该主题通常与事件触发器同时存在。为了考察面试官是否能综合考虑一些具体业务流程(信息流、搜索框输入查询)中的实现思路等。
题目
在一些信息列表中,一般使用瀑布流。当滚动一个屏幕时,加载相应的数据。请思考如何避免连续下拉带来的问题(可能是页面崩溃或者巨卡)。
一般情况下,如果遇到这样的面试问题,图像稳定器机制可以很好的解决。这方面最早的应用实践是Twitter,开发者写了一篇博客详细介绍了如何解决这类问题。那么说到图像稳定器,其核心内涵就在于延迟处理,即延迟所有一系列的事件处理程序,以保证第一个事件处理推入。
event.on(scroll ,函数(e){
var fun
返回函数(){
if(fun)clear time out(fun);
fun=setTimeout(function(){
//console.log(1 )
},500);
}
}());
这是最常见的方式。如果有多次滚动,可以先把真正的功能放在定时器里。
接下来,我们来抽象一下:
功能de(某物,延迟)
var fun
返回函数(){
if(fun)clear time out(fun);
fun=setTimeout(function(){
某物();
},延迟);
}
}
函数scrollToList(){
}
event.on(scroll ,de(scrollToList,1000))
event.on(scroll ,de(scrollToList,2000年))
很明显,这是一种弱治疗。有没有更好的办法?对,比如节流。
这就是本文的全部内容。希望对大家的学习有帮助,支持我们。