文档章节

JavaScript避免代码的重复执行经验技巧分享

 戈歌
发布于 2017/05/17 17:18
字数 705
阅读 4
收藏 0

经常会发现一个问题,那就是重复的代码执行,下面就是一些在查看它们的源代码时发现一些问题,把这些分享给大家,希望能让你们更加简洁高效的写出JavaScript代码

我喜欢到一些大型网站上去翻阅它们的原代码,期望能找到一些可以应用到自己的代码中的模式,或发现一些之前从未听说过的工具和技巧。可是,在我查看这些大型网站的源代码时,经常会发现一个问题,那就是重复的代码执行,重复的功能应用。下面就是JavaScript避免代码的重复执行经验技巧分享的一些问题,把这些分享给大家,希望能让你们更加简洁高效的写出JavaScript代码,

重复的收集元素

我在他们的JavaScript代码里看到的最常见的问题是重复的收集元素。虽然jQuery选择器引擎或querySelectorAll的执行速度都很快,但重复的工作就是会多占用时间和资源。这个问题很浅显。

解决的方法如下:

对那些写出重复执行代码的程序员的谴责我们天天都在做,但仍需要加强。当然,有些重复的动作是无法避免的(比如ajax加载页面),可是,对于这些情况,我们最好是使用事件代理,而不是直接拉取内容。

重复的条件判断

重复的条件计算很常见,但通常也是有一个通用的模式来避免它们。

你可能会看到一段代码写成这样:

这是可行的,但不是最高效的代码,上面的条件可能会多次计算。

写成下面的样子会更好:

只有一个条件,而且条件计算完成时方法或变量就已经作为结果返回了!

重复的对象创建

相比较重复的操作,重复的对象创建更难发现,通常是表现在正则表达式上。

看一下下面的这段代码:

上面的代码会不断的重复创建一个新的(但是相同的)正则表达式对象,对于这种情况,如果你在这个函数的外部创建这个对象。

就能避免这种情况的出现:

在上面的例子中,正则表达式对象只创建了一次,但多次使用——省了很多CPU处理。

这只是一部分我经常看到的其它程序员写的有重复问题的例子,你在网站建设中也有方面的发现吗?

文章来源:http://www.haitaoit.com

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 3
码字总数 8578
作品 0
私信 提问
JavaScript一团乱,这是好事

译者按: JavaScript从简单变复杂了,作者从另一个角度看待这个问题。 原文: JavaScript’s a mess – and that’s a good thing 译者: Fundebug 为了保证可读性,本文采用意译而非直译。另外...

Fundebug
2018/07/03
0
0
js中setInterval与setTimeout用法_已迁移

setTimeout   定义和用法:   setTimeout()方法用于在指定的毫秒数后调用函数或计算表达式。   语法:   setTimeout(code,millisec)    参数:    code (必需):要调用的函数后要...

辣条拌鱼翅
2015/01/01
0
0
编写更好的jQuery代码的建议

讨论jQuery和javascript性能的文章并不罕见。然而,本文我计划总结一些速度方面的技巧和我本人的一些建议,来提升你的jQuery和javascript代码。好的代码会带来速度的提升。快速渲染和响应意味...

MLeo
2014/02/07
0
0
JavaScript 一团乱,这是好事

译者按: JavaScript从简单变复杂了,作者从另一个角度看待这个问题。 原文: JavaScript’s a mess – and that’s a good thing 译者: Fundebug 为了保证可读性,本文采用意译而非直译。另外...

a独家记忆
2018/07/18
0
0
几个重要的javascript高级技巧

Js学的也差不多了,该是来总结一下Js中一些比较高级的智慧结晶了。基于Js的动态性、对象都是易变的、函数是第一对象等等其他语言所不包含的特性,可以在使用Js的时候创造出更高效、组织性更好...

菜到没谱
2013/06/29
483
0

没有更多内容

加载失败,请刷新页面

加载更多

牛津词典 2018 年度词汇 ——「有毒」!

简评:本文并没有「标题党」,牛津词典公布的 2018 年度词汇就是 Toxic. 意为「有毒的」。 2018 was toxic. Toxic 这个词是什么意思呢? 牛津词典(Oxford Dictionaries)在 Word of the Da...

极光推送
13分钟前
0
0
浅谈Service Mesh体系中的Envoy

https://blog.csdn.net/yunqiinsight/article/details/81019255

易野
22分钟前
0
0
嵌入式应用选择合适的微控制器

准备所需硬件接口列表 使用微控制器的基本硬件框图,准备一份微控制器需要支持的所有外设接口的列表。微控制器中有两种常见的接口类型需要列出。第一种是通信接口,这些是外围设备,如USB,S...

linuxCool
30分钟前
3
0
Group by使用

概述 GROUP BY我们可以先从字面上来理解,GROUP表示分组,BY后面写字段名,就表示根据哪个字段进行分组,如果有用Excel比较多的话,GROUP BY比较类似Excel里面的透视表。 GROUP BY必须得配合...

小橙子的曼曼
41分钟前
4
0
机械臂写中文

Make Me a Hanzi https://www.skishore.me/makemeahanzi/ 使用uArm Swift Pro机械臂写中文-毛笔字 https://github.com/makelove/Robot_Arm_Write_Chinese...

itfanr
52分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部