读Javascript高性能编程重点笔记


Posted in Javascript onDecember 21, 2016

第一点

//高效简洁                     //低消能
children




        //childNodes
childElementCount            //childNodes.length
firstElementChild              //firstChild
lastEelmentChild              //lastChild
nextElementSibling           //nextSibling
previousElementSibling       //previousSibling

第二点:选择器的高效应用

<div id="footer_bottom">
<a href="/AboutUS.aspx">三水点靠木</a><a href="/ContactUs.aspx">联系我们</a><a href="/about/ad.aspx">广告服务</a><a href="/about/job.aspx">人才服务</a>©2006-2016 <a href="https://3water.com/">三水点靠木</a>
</div>
var aArr1= document.querySelectorAll("#footer_bottom a");//简洁高效
var aArr2 = docuement.getElementById("footer_bottom").getElementsByTagName("a");//繁杂低效

//return 
<a href="/AboutUS.aspx">三水点靠木</a>,
<a href="/ContactUs.aspx">联系我们</a>,
<a href="/about/ad.aspx">广告服务</a>,
<a href="/about/job.aspx">人才服务</a>,

//选择第一个子节点
var a = document.querySelector("#footer_bottom a");
//return <a href="/AboutUS.aspx">三水点靠木</a>

//选择多个节点
var divs = document.querySelectorAll("div.footer,div.main,div.header");

注意:大部分浏览器都支持上述属性,IE6,7,8仅支持children属性

减少DOM的重新渲染与排版(三种方式)

1.先将要处理的元素隐藏,然后对其处理,最后显示

2.创建文件片段的方式(推荐) document.createDocumentFragment();

3.对要处理的元素克隆一个副本,然后对副本操作,最后将副本替换原本

下面是三水点靠木小编的补充

将循环的对象存储

使用前:

var str = "nanananana";
for (var n = 0; n < str.length; n++) {}

使用后:

 var str = "nanananana",
strLgth = str.length;
for (var n = 0; n < strLgth ; n++) {}

循环对性能的消耗是很大的,将循环的对象存储,减少每次循环都要进行对象的计算。

最小化减少回流和重绘

使用前:

var coored = document.getElementById("ctgHotelTab");
document.getElementById("ctgHotelTab").style.top = coored.offsetTop + 35 + "px";

使用后:

var coored = document.getElementById("ctgHotelTab"),
offetTop = coored.offsetTop + 35;
document.getElementById("ctgHotelTab").style.top = offetTop + "px";
Javascript 相关文章推荐
createElement动态创建HTML对象脚本代码
Nov 24 Javascript
Mootools 1.2教程 设置和获取样式表属性
Sep 15 Javascript
jquery 仿QQ校友的DIV模拟窗口效果源码
Mar 24 Javascript
JS文本框默认值处理详解
Jul 10 Javascript
javascript设置连续两次点击按钮时间间隔的方法
Oct 28 Javascript
使用jQuery制作基础的Web图片轮播效果
Apr 22 Javascript
javascript中的 object 和 function小结
Aug 14 Javascript
js实现图片360度旋转
Jan 22 Javascript
Ajax和Comet技术总结
Feb 19 Javascript
深入了解js原型模式
May 30 Javascript
vue-froala-wysiwyg 富文本编辑器功能
Sep 19 Javascript
javascript实现倒计时提示框
Mar 02 Javascript
解决拦截器对ajax请求的拦截实例详解
Dec 21 #Javascript
原生的强大DOM选择器querySelector介绍
Dec 21 #Javascript
懒加载实现的分页&amp;&amp;网站footer自适应
Dec 21 #Javascript
JS树形菜单组件Bootstrap TreeView使用方法详解
Dec 21 #Javascript
Vue.js 递归组件实现树形菜单(实例分享)
Dec 21 #Javascript
详解jQuery选择器
Dec 21 #Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
Dec 21 #Javascript
You might like
使用PHP模拟HTTP认证
2006/10/09 PHP
PHP Class&amp;Object -- PHP 自排序二叉树的深入解析
2013/06/25 PHP
PHP实现多图片上传类实例
2014/07/26 PHP
PHP函数rtrim()使用中的怪异现象分析
2017/02/24 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
php的RSA加密解密算法原理与用法分析
2020/01/23 PHP
jquery+ajax验证不通过也提交表单问题处理
2014/12/12 Javascript
js随机生成网页背景颜色的方法
2015/02/26 Javascript
Jquery Ajax Error 调试错误的技巧
2015/11/20 Javascript
JavaScript中字符串与Unicode编码互相转换的实现方法
2015/12/18 Javascript
JS去除空格和换行的正则表达式(推荐)
2016/06/14 Javascript
Angular.js中用ng-repeat-start实现自定义显示
2016/10/18 Javascript
js推箱子小游戏步骤代码解析
2018/01/10 Javascript
vue 过滤器filter实例详解
2018/03/14 Javascript
JavaScript面向对象程序设计创建对象的方法分析
2018/08/13 Javascript
从0到1搭建element后台框架优化篇(打包优化)
2019/05/12 Javascript
微信小程序登录态和检验注册过没的app.js写法
2019/05/22 Javascript
layui问题之模拟table表格中的选中按钮选中事件的方法
2019/09/20 Javascript
Vue父子传递实例讲解
2020/02/14 Javascript
javascript实现评分功能
2020/06/24 Javascript
pyqt和pyside开发图形化界面
2014/01/22 Python
python网络编程学习笔记(一)
2014/06/09 Python
Python实现动态加载模块、类、函数的方法分析
2017/07/18 Python
浅谈Python NLP入门教程
2017/12/25 Python
使用python验证代理ip是否可用的实现方法
2018/07/25 Python
python3.4 将16进制转成字符串的实例
2019/06/12 Python
python高级特性简介
2020/08/13 Python
纯css3实现的鼠标悬停动画按钮
2014/12/23 HTML / CSS
.NET程序员的数据库面试题
2012/10/10 面试题
linux面试题参考答案(11)
2016/11/26 面试题
仪器仪表检测毕业生自荐信
2013/10/31 职场文书
关于工资低的辞职信
2014/01/14 职场文书
高二地理教学反思
2014/01/24 职场文书
教师正风肃纪剖析材料
2014/10/20 职场文书
复活读书笔记
2015/06/29 职场文书
php去除数组中为0的元素的实例分析
2021/11/17 PHP