高性能JavaScript

优化JavaScript的规则:

1)将脚本放在底部。

2)减少页面中外链脚本文件的数量和大小。(下载单个100KB的文件将比下载4个25KB的文件更快)。

3)使用原生方法

 

1、多数浏览器使用单一线程来处理用户界面(UI)刷新和JavaScript脚本执行,所以同一时刻只能做一件事。JavaScript执行过程耗时越久,浏览器等待响应的时间就越长。

2、浏览器在解析到<body>标签之前,不会渲染页面的任何部分。把脚本放到页面顶部将会导致明显的延迟,通常表现为显示空白页面,用户无法浏览内容,也无法与页面进行交互。

3、带有defer属性的<script>标签可以放在文档的任何位置。对应的JavaScript文件将在页面解析到<script>标签时开始下载,但并不会执行,直到DOM加载完成(onload事件被触发前)。当一个带有defer属性的JavaScript文件下载时,它不会阻塞浏览器的其他进程,因此这类文件可以与页面中的其他资源并行下载。

4、async属性,用于异步加载脚本。async与defer的相同点是采用并行下载,在下载过程中不会产生阻塞。区别在于执行时机,async是加载完成后自动执行,而defer需要等待页面完成后执行。

5、每一个JavaScript函数都表示为一个对象,更确切地说,是Function对象的一个实例。Function对象痛其他对象一样,拥有可以编程访问的属性,和一系列不能通过代码访问而仅供JavaScript引擎存取的内部属性。Scope是Function对象的内部属性,包含了一个函数被创建的作用域中对象的集合,这个集合被称为函数的作用域链,它决定哪些数据能被函数访问。

6、在执行环境的作用域中,一个标识符所在的位置越深,它的读写速度也就越慢。因此,函数中读写局部变量总是最快的,而读写全局变量通常是最慢的。全局变量总是存在于执行环境作用域链的最末端,因此它也是最远的。

7、JavaScript中的对象是基于原型的,原型定义并实现了一个新创建的对象所必须包含的成员列表。原型对象为所有对象实例所共享,因此这些实例也共享了原型对象的成员。当book.toString( )被调用时,会从对象实例开始,搜索名为“toString”的成员,一旦发现book没有名为toString的成员,那么会继续搜索器原型对象,直到toString( )方法被找到并执行。由此可见,对象book可以访问它原型中的每一个属性和方法。

 

8、在函数中,如果要多次读取同一个对象属性(方法属性除外),最佳做法是将属性值保存到局部变量中。局部变量能用来替代属性,以避免多次查找带来的性能开销。

9、对于任何类型的DOM访问,需要多次访问同一个DOM属性,或者方法需要多次访问时,最好使用一个局部变量缓存此成员。当遍历一个集合时,第一优化原则是把集合存储在局部变量中,并把length缓存在循环外部,然后,使用局部变量替代这些需要多次读取的元素。

10、由于每次迭代操作会同时搜索实例或者原型属性,for-in循环的每次迭代都会产生更多开销,所以比其他循环类型要慢。

11、可以通过颠倒数组的顺序来提高循环性能。

 

 

 

利用 TensorFlow 训练自己的目标识别器。本文内容来自于我的毕业设计,基于 TensorFlow 1.15.0,其他 TensorFlow 版本运行可能存在问题。.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值