<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="分享js避免代码的重复执行的经验技巧" id="card1">
<p> 游客</p><p>
标题:分享js避免代码的重复执行的经验技巧<br/>
正文:<br/>
所谓，站在巨人的肩膀上，会有质的飞越，所以，我喜欢到一些大型网站上去翻阅它们的原代码，期望能找到一些可以应用到自己的代码中的模式，或发现一些之前从未听说过的工具和技巧。可是，在我查看这些大型网站的源代码时，经常会发现一个问题，那就是重复的代码执行，重复的功能应用。下面就是一些在查看它们的源代码时发现一些问题，把这些分享给大家，希望能让你们更加简洁高效的写出JavaScript代码。 <br/>重复的收集元素 <br/><br/>我在他们的JavaScript代码里看到的最常见的问题是重复的收集元素。虽然jQuery选择器引擎或querySelectorAll的执行速度都很快，但重复的工作就是会多占用时间和资源。这个问题很浅显，解决的方法如下： <br/>代码如下:<br/>// <br/>$$(&quot;.items&quot;).addClass(&quot;hide&quot;); <br/>// ... 后来又 ... <br/>$$(&quot;.items&quot;).removeClass(&quot;hide&quot;); <br/><br/>// <br/>var items = $$(&quot;.items&quot;); <br/>// ... 从这里开始使用这个引用变量! <br/><br/>对那些写出重复执行代码的程序员的谴责我们天天都在做，但仍需要加强。当然，有些重复的动作是无法避免的(比如ajax加载页面)，可是，对于这些情况，我们最好是使用事件代理，而不是直接拉取内容。 <br/>重复的条件判断 <br/><br/>重复的条件计算很常见，但通常也是有一个通用的模式来避免它们。你可能会看到一段代码写成这样： <br/>代码如下:<br/>var performMiracle = function() { <br/>// 如果浏览器支持A特征... <br/>if(features.someFeature) { <br/><br/>} <br/>// ... 如果不支持 <br/>else { <br/><br/>} <br/>}; <br/><br/>这是可行的，但不是最高效的代码，上面的条件可能会多次计算。写成下面的样子会更好： <br/>代码如下:<br/>var performMiracle = features.someFeature ? function() { <br/>// Plan A stuff <br/>} <br/><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1225&amp;Page=1">[&lt;&lt;]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1225&amp;Page=1">[[1]]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1225&amp;Page=2">[2]</a><a href="http://camnpr.com/wap.asp?mode=WAP&amp;act=View&amp;id=1225&amp;Page=2">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=1225">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=1225">发表评论</a><br/><br/>

<br/>

<br/>
<a href="http://camnpr.com/wap.asp">首页</a>
</p>
</card>
</wml>