我喜欢去一些大的
网站浏览他们的原代码,希望找到一些
模式,可以应用到自己的代码,或者找一些
工具和技能,从来没有听说过的。但是,当我看着这些大型网站的源代码,我
经常发现一个问题,那就是,重复代码的
执行,并重复
功能的
应用程序。这里有一些你会发现当你看他们的源代码的问题,与你
分享。我希望您能更简洁高效地编写Javascript代码。
元素重复采集
最常见的问题,他们看我是Javascript代码元素的重复采集。尽管jQuery的选择器引擎或querySelectorAll的执行
速度是很快的,重复性的
工作是需要更多的时间和资源。这个问题很简单,
解决方法如下:
复制代码代码如下所示:
Suoyuan(。项目)。AddClass(隐藏);
然后…
Suoyuan(。项目)。RemoveClass(隐藏);
/ /
var项目= $();
…从这里开始使用变量!
对编写重复代码的程序员的谴责是每天都要做的,但仍然需要加强。当然,有些重复的
操作是不可避免的(比如Ajax加载页面),但是在这种
情况下,我们最好使用事件
代理而不是直接拉内容。
重复
条件判断
重复的条件计算是常见的,但通常有一个共同的模式来避免它们:
复制代码代码如下所示:
无功performmiracle =
函数(){()
如果
浏览器支持某个特性…
如果(特征。剧情){
}
如果您不支持 /…
{其他
}
};
这是可行的,但不是最有效的代码,上面的条件可以多次计算。
复制代码代码如下所示:
无功performmiracle = features.somefeature函数(){
一个计划/计划
}函数(){
b计划
};
只有一个条件,当条件完成时,方法或变量作为结果返回。
重复
创建对象
与重复操作相比,重复对象的创建更难找到,通常是在正则表达式上:
复制代码代码如下所示:
功能cleantext(脏){
删除脚本/标签
清洁= dirty.replace( / }×>({ 的 } * / GI),);
一些 / /做清洁,也许空白,等。
返回清洁;
}
上面的代码将重复创建一个新的(但相同的)正则表达式对象。在这种情况下,如果在函数之外创建这个对象,您将避免这种情况。
复制代码代码如下所示:
Var scriptRegex({ 的 } *) / GI = / } * >;
功能cleantext(脏){
去掉脚本标签
清洁= dirty.replace(scriptregex,);
一些 / /做清洁,也许空白,等。
返回清洁;
}
在上面的示例中,正则表达式对象只创建了一次,但多次使用,节省了大量CPU
处理。
这只是其他程序员经常遇到的重复问题的一个例子。你在这个领域有什么发现吗