读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 相关文章推荐
Jquery.TreeView结合ASP.Net和数据库生成菜单导航条
Aug 27 Javascript
File, FileReader 和 Ajax 文件上传实例分析(php)
Apr 27 Javascript
javascript精确统计网站访问量实例代码
Dec 19 Javascript
JS上传组件FileUpload自定义模板的使用方法
May 10 Javascript
深入学习jQuery中的data()
Dec 22 Javascript
js 单引号替换成双引号,双引号替换成单引号的实现方法
Feb 16 Javascript
iOS + node.js使用Socket.IO框架进行实时通信示例
Apr 14 Javascript
JavaScript生成简单等差数列
Nov 28 Javascript
Angular4的输入属性与输出属性实例详解
Nov 29 Javascript
优雅地使用loading(推荐)
Apr 20 Javascript
Vue中消息横向滚动时setInterval清不掉的问题及解决方法
Aug 23 Javascript
微信小程序日历插件代码实例
Dec 04 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页面中文乱码分析
2013/10/29 PHP
Yii框架表单模型和验证用法
2016/05/20 PHP
centos下file_put_contents()无法写入文件的原因及解决方法
2017/04/01 PHP
PHP中的输出echo、print、printf、sprintf、print_r和var_dump的示例代码
2020/12/01 PHP
PHP filter_var() 函数, 验证判断EMAIL,URL等
2021/03/09 PHP
利用js对象弹出一个层
2008/03/26 Javascript
浅谈javascript中return语句
2015/07/15 Javascript
js+css实现超简洁的二级下拉菜单效果代码
2015/09/07 Javascript
IScroll5 中文API参数说明和调用方法
2016/05/21 Javascript
微信小程序 label 组件详解及简单实例
2017/01/10 Javascript
Nodejs中使用captchapng模块生成图片验证码
2017/05/18 NodeJs
JS实现字符串翻转的方法分析
2018/08/31 Javascript
关于vue v-for 循环问题(一行显示四个,每一行的最右边那个计算属性)
2018/09/04 Javascript
JSON.stringify()方法讲解
2019/01/31 Javascript
Vue2.x通用编辑组件的封装及应用详解
2019/05/28 Javascript
使用typescript改造koa开发框架的实现
2020/02/04 Javascript
基于vue-cli3+typescript的tsx开发模板搭建过程分享
2020/02/28 Javascript
easy_install python包安装管理工具介绍
2013/02/10 Python
最基础的Python的socket编程入门教程
2015/04/23 Python
Python实现LRU算法的2种方法
2015/06/24 Python
Python中.py文件打包成exe可执行文件详解
2017/03/22 Python
python实现连连看辅助之图像识别延伸
2019/07/17 Python
4行Python代码生成图像验证码(2种)
2020/04/07 Python
用pandas划分数据集实现训练集和测试集
2020/07/20 Python
Pycharm 设置默认解释器路径和编码格式的操作
2021/02/05 Python
安纳塔拉酒店度假村及水疗官方网站:Anantara Hotel
2016/08/25 全球购物
澳大利亚礼品卡商店:Gift Card Store
2019/06/24 全球购物
Prototype是怎么扩展DOM的
2014/10/01 面试题
初始化了一个没有run()方法的线程类,是否会出错?
2014/03/27 面试题
参观接待方案
2014/03/17 职场文书
房地产推广策划方案
2014/05/19 职场文书
大学生毕业求职信
2014/06/12 职场文书
学校工作推荐信范文
2014/07/11 职场文书
2016新年年会主持词
2015/07/06 职场文书
九九重阳节致辞
2015/07/31 职场文书
Go 在 MongoDB 中常用查询与修改的操作
2021/05/07 Golang