最近处理一个关于IE8兼容时,页面加载总是报出运行过慢,是否终止加载页面的问题,在处理这个问题的时候考虑到了以下几个问题:
1 既有的代码中,类似于$('#thisForm [name=]')的语句特别多
2 页面中有为数不少的单选,复选框元素,这部分元素只有name元素,没有固定的id元素
以上2点导致的问题就是,页面每次加载查找元素都需要在thisForm中查找,效率很低,为此我需要重新设计查找方式,来使得不改变原有的机能以及不改变IE8的安全提示等级的前提下,使得加载消耗能够满足IE8 的内核。
解决方案: 就近ID查找,例如:
<div id="content">
<form method="post" action="/">
<h2>Traffic Light</h2>
<ul id="traffic_light">
<li><input type="radio" class="on" name="light" value="red" /> Red</li>
<li><input type="radio" class="off" name="light" value="yellow" /> Yellow</li>
<li><input type="radio" class="off" name="light" value="green" /> Green</li>
</ul>
<input class="button" id="traffic_button" type="submit" value="Go" />
</form>
</div>
寻找单选框控件的最快方式是:var active_light = $('#traffic_light input.on');
更多优化技巧可参考链接:https://www.jb51.net/article/43197.htm