前端程序员必需知道的高性能Javascript学问_

上传人:x** 文档编号:24884279 上传时间:2021-07-15 格式:DOCX 页数:5 大小:13.93KB
收藏 版权申诉 举报 下载
前端程序员必需知道的高性能Javascript学问__第1页
第1页 / 共5页
前端程序员必需知道的高性能Javascript学问__第2页
第2页 / 共5页
前端程序员必需知道的高性能Javascript学问__第3页
第3页 / 共5页
资源描述:

《前端程序员必需知道的高性能Javascript学问_》由会员分享,可在线阅读,更多相关《前端程序员必需知道的高性能Javascript学问_(5页珍藏版)》请在装配图网上搜索。

1、前端程序员必需知道的高性能Javascript学问_ 想必大家都知道,JavaScrip是全栈开发语言,扫瞄器,手机,服务器端都可以看到JS的身影。 本文会分享一些高效的JavaScript的最佳实践,提高大家对JS的底层和实现原理的理解。 数据存储 计算机学科中有一个经典问题是通过转变数据存储的位置来获得最佳的读写性能,在JavaScript中,数据存储的位置会对代码性能产生重大影响。 能用法创建对象就不要用法new Object,能用法创建数组就不要用法new Array。JS中字面量的访问速度要高于对象。 变量在作用域链中的位置越深,访问所需实践越长。对于这种变量,可以通过缓存用法局部变

2、量保存起来,削减对作用域链访问次数 用法点表示法(object.name)和操作符(objectname)操作并没有太多区分,只有Safari会有区分,点始终更快 循环 在JS中常见的循环有下面几种: for(var i = 0; i 10; i+) / do something for(var prop in object) / for loop object 1,2.forEach(function(value, index, array) / 基于函数的循环) 毋庸质疑,第一种方式是原生的,性能消耗最低的,速度也最快。其次种方式for-in每次迭代都回产生更多的开销(局部变量),它的速度

3、只有第一种 的1/7 第三种方式明显供应了更便利的循环方式,但是他的速度只有一般循环的1/8。所以可以依据自己项目状况,选择合适的循环方式。 大事托付 试想一下页面上每一个A标签添加一个大事,我们会不会给每一个标签都添加一个onClick呢。 当页面中存在大量元素都需要绑定同一个大事处理的时候,这种状况可能会影响性能。每绑定一个大事都加重了页面或者是运行期间的负担。对于一个富前端的应 用,交互重的页面上,过多的绑定会占用过多内存。 一个简洁优雅的方式就是大事托付。它是基于大事的工作流:逐层捕获,到达目标,逐层冒泡。既然大事存在冒泡机制,那么我们可以通过给外层绑定大事,来处理 全部的子元素动身的

4、大事。 document.getElementById(content).onclick = function(e) e = e | window.event; var target = e.target | e.srcElement; /假如不是 A标签,我就退出 if(target.nodeNmae != A) return /打印A的链接地址 console.log(target.href) 重绘与重排 扫瞄器下载完HTMl,CSS,JS后会生成两棵树:DOM树和渲染树。 当Dom的几何属性发生改变时,比如Dom的宽高,或者颜色,position,扫瞄器需要重新计算元素的几何属性,并且重

5、新构建渲染树,这个过程称之为重绘重排。 bodystyle = document.body.style; bodystyle.color = red; bodystyle.height = 1000px; bodystyke.width = 100%; 上述方式修改三个属性,扫瞄器会进行三次重排重绘,在某些状况下,削减这种重排可以提高扫瞄器渲染性能。 推举方式如下,只进行一次操作,完成三个步骤: bodystyle = document.body.style; bodystyle.cssText color:red;height:1000px;width:100%; JavaScript加载

6、IE8,Firefox3.5,Chrome2都允许必行下载JavaScript文件。所以script不会堵塞其他标签下载。 圆满的是,JS下载过程依旧会堵塞其他资源的下载,比如图片。尽管最新的扫瞄器通过允许并行下载提高了性能,但是脚本堵塞任然是一个问题。 因此,推举将全部的script标签放在body标签的底部,以尽量削减对整个页面渲染的影响,避开用户看到一片空白 JS文件高性能部署 既然大家已经知道多个script标签会影响页面渲染速度,那么就不难理解“削减页面渲染所需的 HTTP”是网站提速的一条经典法则。 所以,在产品环境下合并全部的JS文件会削减恳求数,从而加快页面渲染速度。 除了合并

7、JS文件,我们还可以压缩JS文件。压缩是指将文件中与运行无关的部分进行剥离。剥离内容包括空白字符,和说明。改过程通常可以将文件大小减半。 还有一些压缩工具会将局部变量的长度减小,比如: var myName = foo + bar; /压缩后变成 var a = foobar; 缓存JS文件 缓存HTTP组件能极大提高网站回访的用户体验。Web服务器通过“Expires HTTP响应头”来告诉客户端一个资源应当缓存多长时间。当然,缓存也有自己的缺陷: 当应用升级时,你需要确保用户下载到最新的静态内容。这个问题可以通过转变静态资源的文件名来解决。 你可能在产品环境看到扫瞄器引用jsapplication-20211123202112.js,这种就是以时间戳的方式保存新的JS文件,从而解决缓存不更新问题。 总结 当然,高效的JS不仅仅只有这些可以改进的地方,假如能够削减一些性能的损耗,我们就能更高效的用法JavaScript进行开发了。 .

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!