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"),
mask = document.getElementById("mask"),
len = gcld_but_li.length,
gcld_but_a,
i,
s_height = document.documentElement.scrollHeight||document.body.scrollHeight;
o_height = null,
o_width = null,
on = 0; ------------------------>>>>>>>>>>>>>>>>>>>>>变量尽量写在开头,防止滚动时候每次执行函数就取DOM元素,浪费性能。
mask.style.height = s_height+"px"; /*水平垂直居中函数*/
function centered_box(){
var s_top = document.body.scrollTop||document.documentElement.scrollTop,
c_height = document.documentElement.clientHeight||document.body.clientHeight,
c_width = document.documentElement.clientWidth||document.body.clientWidth,
left,
top; if( !o_height ){------------------------------>>>>>>>>>>>>>>>>>>>取一次DOM元素后放在变量里(页面不关闭就一直存在),下次执行函数就不用取了。
o_height = box.offsetHeight;
o_width = box.offsetWidth;------------------->>>>>>>>>>>>>>>>有些浏览器在元素display:none时取不到宽高,点击按钮显示该元素后再执行函数,所以写在函数里面一定能取到。
} 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小程序写法优化的更多相关文章
- 微信小程序性能优化技巧
摘要: 如果小程序不够快,还要它干嘛? 原文:微信小程序性能优化方案--让你的小程序如此丝滑 作者:杜俊成要好好学习 Fundebug经授权转载,版权归原作者所有. 微信小程序如果想要优化性能,有关键 ...
- 【微信小程序推广营销】教你微信小程序SEO优化,让你的小程序快人一步抢占先机
今年一月份上线的小程序,经过近一年的沉淀发酵,现在也进入了快速发展期. 在未来肯定会有越来越多的小程序诞生,小程序多了就需要搜索,那么如何让自己的小程序在众多的小程序中脱颖而出,这就需要小程序SEO优 ...
- 微信小程序开发优化
一.开发优化一 1.使用Vant Weapp 1.1 什么是Vant Weapp Vant Weapp官网链接 Vant Weapp是有赞前端团队开源的一套小程序UI组件库,助力开发者快速搭建小程序应 ...
- 微信小程序性能优化之一
性能优化 界面和业务逻辑之间事件交互小程序调用nativeNative回调小程序 图片源文件优化 渲染优化 ---------------------------------------------- ...
- Please do not register multiple Pages in undefined.js 小程序报错的几种解决方案
Wed Jun 27 2018 09:25:43 GMT+0800 (中国标准时间) Page 注册错误,Please do not register multiple Pages in undefi ...
- 微信小程序:优化页面要渲染的属性
问题:页面中只用到四个属性:goods_name,goods_price,goods_introduce,pics,但是整个对象中有22个属性,小程序中建议:data中只存放标签中要使用的数据,而现在 ...
- js 学习之路10:try异常处理和第一个js小程序
try 语句测试代码块的错误. catch 语句处理错误. throw 语句创建自定义错误. 1. try/catch语句 catch语句用来捕获try代码块中的错误,并执行自定义的语句来处理它. 语 ...
- 小程序的优化代码的分析Promise方法
代码优化,这里通过了wx.request请求轮播图的API,通过result结果里面的data数据我们可以看到massage里面装着我们的数据 通过图片可以用看到swiperList返回的三个元素的数 ...
- 微信小程序:优化接口代码-提取公共接口路径
方法一.将公共部分提取出来定义为baseURL变量 简化url,把里面公共部分提取出来.如https://api-hmugo-web.itheima.net/api/public/v1/categor ...
随机推荐
- 配置ADFS Outlook Client.
error:The authentication endpoint Username was not found on the configured Secure Token Service!1. ...
- Spring学习笔记之一----基于XML的Spring IOC配置
1. 在spring配置文件中,如果对一个property进行直接赋值,可使用<value>元素,spring负责将值转化为property指定的类型:也可以直接在property元素上使 ...
- centos 配置 ssl服务
使用的是appach 2.4.10 版本 各个版本配置不同 1.首先修改httpd.conf 文件 appach 安装目录下的 conf文件夹中找到 #LoadModule socache_shmcb ...
- Core Data 使用映射模型
Core Data 使用映射模型 如果新版本的模型存在较复杂的更改,可以创建一个映射模型,通过该模型指定源模型如何映射到目标模型. 创建映射模型,新建File, Core Data 选择Mappin ...
- 初始angular框架(1)
作为一个从来没有使用过的angular框架的小白 第一步肯定是 看文档! 没错就是看文档了!
- 判断一个 int 向量里是否有相同的数(1)
class Solution { public: bool containsDuplicate(vector<int>& nums) { map<int,char> e ...
- 30分钟学会如何使用Shiro
本篇内容大多总结自张开涛的<跟我学Shiro>原文地址:http://jinnianshilongnian.iteye.com/blog/2018936 我并没有全部看完,只是选择了一部分 ...
- Table排序
<html> <head> <title>tablesorter表单排序插件</title> <link type ="text/css ...
- spine实现预加载(一)
前言 本文实现了spine动画的预加载,解决在战斗等大量加载spine动画的时候出现卡顿现象. 这里使用和修改三个类,直接修改的源码,当然你也可以继承LuaSkeletonAnimation,自己封装 ...
- 《编写可维护的JavaScript》——JavaScript编码规范(四)
注释 单行注释 单行注释以两个斜线开始,以行尾结束 单行注释有三种使用方法: 独占一行的注释,用来解释下一行代码.这行注释前总是有一个空行,且缩进层级和下一行代码保持一致. 在行尾的注释.代码结束到注 ...