JS高级技巧汇总
来源:互联网 发布:java的api 编辑:程序博客网 时间:2024/05/16 18:19
更新时间:2017年11月09日12:26:37
1、函数节流
场景:监听页面滚动到距离底部小于等于10px,触发请求分页数据;但监听滚动事件,每滚动一帧会触发一次函数,当用户快速滚动页面到达底部,会连续触发10次请求,因此需要设定,在具体的时间(比如1000ms)内,只能触发一次函数;
函数节流技术:解决频繁触发函数性能问题
请求数据的函数:getDate(){}
执行函数的方案:
clearTimeout(this.getDateTimer);
this.getDateTimer = setTimeout(()=>{
this.getDate();
},1000)
函数节流技术引发的问题,每次请求都需要在延迟1000ma后才能执行,能否先请求,后延时,延时未过,不进行下一次请求?
优化方案:
定义变量并初始化:let delayTieout = true;
执行函数的方案:
if(delayTimeout){
this.getData();
}
delayTimeout = false;
clearTimeout(this.getDateTimer);
this.getDateTimer = setTimeout(()=>{
delayTimeout = true;
},1000)
这个方案,保证第一次会实时执行请求数据的函数,但第二次执行只能在1000ms后才能触发;
2、数据运算
数据转换:+‘1’将String类型数据转换成Number;‘’+1将Number类型的数据转换成String类型
0.1+0.2=0.30000000000000004、2.4/0.8=2.9999999999999996的问题,这是JavaScript浮点运算的自身的问题。 处理方案:先将结果相加,然后用toFixed(2)精确两位小数转换成字符串,再转成Number类型,如下:
+((0.1+0.2).toFixed(1));
3、自执行函数
!(function(n){
console.log(n);//window对象
}(window));
4、用HTML属性data-*获取HTML中DOM元素的索引
问题:如下,轮播图结构,如何获取当前轮播图片li标签的索引,可以用到HTML新属性data-*
<ul>
<li></li>
<li></li>
<li></li>
...
</ul>
改变DOM结构如下:
<ul>
<li data-index='0'></li>
<li data-index='1'></li>
<li data-index='2'></li>
...
</ul>
获取当前轮播图索引的方法:
let index = $('ul>li').attr('data-index');
未完,待续...
- JS高级技巧汇总
- CSS 高级技巧汇总
- css高级技巧汇总
- Pymol高级作图技巧汇总
- JS高级技巧笔记
- JS高级技巧
- JS高级技巧
- js技巧汇总
- js高级技巧之高级定时器
- js高级技巧100例
- JS高级技巧学习小结
- js自学笔记--高级技巧
- JS高级技巧学习小结
- nc.exe高级技巧应用汇总
- CSS在使用中的高级技巧汇总
- 12 个 CSS 高级技巧汇总
- 12 个 CSS 高级技巧汇总
- 12 个 CSS 高级技巧汇总
- Python中画图时候的线类型
- 小白入门JAVA,记录一下成长过程
- Android Studio 开启配置混淆功能可能遇到的问题以及解决思路
- tomcat开启远程调试功能
- entityframework 连mysql
- JS高级技巧汇总
- Auto mmweb
- 27、Android应用第一次安装成功点击“打开”后Home键切出应用后再点击桌面图标返回导致应用重启问题
- 登录校验码综述
- chmod 的详细用法
- leetcode4. Median of Two Sorted Arrays
- 【codevs 1730】青蛙过河
- form表单同步提交和异步提交
- 彻底弄懂C语言数组名