首页 > 代码库 > js小程序写法优化
js小程序写法优化
(function(){
var gcld_but = document.getElementById("gcld_but"),
gcld_but_li = gcld_but.getElementsByTagName("li"),
gcld_box = document.getElementById("gcld_box"),
close_btn = document.getElementById("close_btn"),
gcld_btn = document.getElementById("gcld_btn"),
box = document.getElementById("box"),
len = gcld_but_li.length,
gcld_but_a,
i,
c_height = document.documentElement.clientHeight,
c_width = document.documentElement.clientWidth,
o_height,
o_width,
on = 0;
/*弹窗上下左右居中*/
function centered_box(){
var s_top = document.body.scrollTop,---------------------》》》》》》》》》》》变量尽量写在开头,防止滚动时候每次执行函数就取DOM元素,浪费性能。
left,
top;
if( !o_height ){ ----------------------》》》》》》》》》》没获取过该DOM元素再获取,取一次DOM元素后放在变量里(页面不关就一直存在),下次执行函数就不取了。
o_height = box.offsetHeight;------------------》》》》》》有些浏览器在元素display:none时候取不到宽高,点击按钮元素显示执行函数,所以写在函数里面一定能取到。
o_width = box.offsetWidth;
}
left = (c_width - o_width)/2 + "px";
top = (c_height/2 - o_height/2 +s_top) + "px";
box.style.left = left;
box.style.top = top;
}
/*点击打开弹窗*/
for(i=0; i<len; i++){
gcld_but_a = gcld_but_li[i].getElementsByTagName("a")[0];
gcld_but_a.onclick = function(){
gcld_box.style.display = "block";
on = 1;
centered_box();
}
}
/*点击关闭弹窗*/
close_btn.onclick = gcld_btn.onclick = function(){
gcld_box.style.display = "none";
on = 0;
};
window.onscroll = window.onresize = function(){
if(on){ ----------------------------------》》》》》》》》》》》》》》》》》》》加个开关,只让点击的时候执行弹窗函数。
centered_box();
}
};
})();
总结:1:定义的变量尽量写在程序的上方----规范
2:(从执行流的角度)功能实现后----(从性能的角度)对程序进行优化。
3:性能优化
1、防止重复获取DOM元素
2、防止重复执行代码函数
3、写法考虑兼容性
js小程序写法优化
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。