标签:文档碎片 const 全局 rom 去掉 获取 syn es5 获得
少设置全局变量,少全局查找(如需要全部变量,全局变量数据局部化)少闭包,及时清除定时器,事件委托,循环优先使用do...while...(合并循环变量和条件),for 循环减少长度获取,文档碎片代替append
代码执行 工具:JSBench
减少判断层级
减少作用域链查找层级
// 全局变量局部化
fun1(){
const a = window.inneiHeight;
console.log(a);
}
// 文档碎片代替append
let frg = document.createDocumentFragment();
for(let i=0; i<1000; i++){
let el = document.createElement(‘p‘)
el.innerHTML = "lg is a coder"
fra.appChild(el)
}
document.body.appChild(frg)
复制代码
// 减少判断层级
// 方法1:
fun2(){
if(){
if(){
}
}else{
}
}
// 方法2:优先推荐
fun3(){
if(){}
if(){}
if(){}
}
复制代码
<html>
<head></head>
<body>
<!-- 页面布局 -->
<script></script>
</body>
</html>
复制代码
// 防抖,在第一次触发事件时,不立即执行函数,而是给出一个期限值比如1000ms
// 如果短时间在大量触发同一事件,只会执行一次函数
// 就是事件触发后等待一会,看还触发不了,触发了重新等待执行
function debounce(fn, delay){
let timer = null;
return function(){
if(time){
clearTimeout(timer);
}
timer = setTimeout(fn, delay);
}
}
// 节流
// 防止无聊人士没事瞎点击,在delay时间范围内多次触发只执行一次
let isClick = true;
function throttle(fn, delay){
let valid = true;
return function(){
if(valid){
valid = false;
setTimeout(()=>{
fn();
valid = true;
}, delay)
}
}
}
复制代码
function loadScript(url, cb){
let script = document.createElement("script");
script.type = "text/javascript";
if(script.readyState){
script.onreadystatechange = function(){
if(script.readyState === ‘loaded‘ || script.readyState === ‘complete‘){
script.onreadystatechange = null;
cb();
}
}
}else{
script.onload = function(){
cb();
}
}
script.src = url;
document.getElementsByTagName(‘head‘)[0].appendChild(script);
}
// 使用
loadScript(‘./a.js‘,function(){
loadScript(‘./b.js‘,function(){
loadScript(‘./c.js‘,function(){
console.log(‘加载完成‘)
})
})
})
复制代码
// 不推荐
for(var i=0; i<tem.length; i++){
process(item[i]);
}
// 推荐
// for 循环
for(var i=item.length; i--){
process(item[i]);
}
// while循环
var j = item.length;
while(j--){
process(item[i]);
}
复制代码
// for...in... 循环比较慢,因为每次迭代操作时会同时查询实例或原型属性
// for循环迭代比forEach函数迭代性能高
// 不推荐
items.forEach(function(value,index,array){
process(value);
})
复制代码
标签:文档碎片 const 全局 rom 去掉 获取 syn es5 获得
原文地址:https://www.cnblogs.com/tkqq000/p/14902393.html