出于速度和可读性的原因,创建新的XHTML标记是否是一个好主意?
我开发了一个Web应用程序启动,并且我经常遇到以下代码。
<div class="items container">
<div class="item">
<div class="property propertyA">Some stuff</div>
</div>
</div>
我们典型的jQuery选择器看起来非常类似于:
$("div.items.container > div.item > div.property.propertyA").map(doStuff());
问题是,我们经常调用类选择器,直到大部分时间花费在执行JS上的时间都花在运行jQuery的内部curCSS方法上。
虽然我们可能只有一个物品容器,但它可能包含几百个物品,每个物品都有几十个物业。 实际上,在任何给定时间,页面上总是存在大约5K + html标签。
我们在客户端绑定越来越多的逻辑来容纳新功能。 只要某些浏览器在某些情况下已经显示致命的“您的页面无响应”消息,我认为这将无法持续。 我们正在考虑很快重构整个客户端。
我正在考虑在新的xml命名空间中实现一些新的XHTML标签,使其看起来像这样:
<items>
<item>
<propertyA>Some Stuff</div>
</item>
</items>
然后我可以选择以下方式:
$("items > item > propertyA")
或直接
$("propertyA")
纠正我,如果我错了,但通过摆脱我的慢CSS选择器赞成一些“getElementsByTagName”可以节省我很多循环,同时使我的css cuter和我的整体代码整齐。 这样的解决方案是否有效?
顺便说一句:在这里我们运行的假设,IE浏览器不存在和Firefox 3 + || Chrome 3 +是我们的目标受众。
我不知道你的建议是否真的有必要,或者会提高速度。 但是,如果您知道“property”或“propertyA”类将始终位于“item”类中,那么仅使用.property
或.propertyA
作为选择器会更有效。
如果您的.items.container
元素对页面是唯一的,请考虑在其上使用ID。 然后,jQuery将首先选择该ID并仅查看该内容。 除非您有其他要排除的元素(如<p class="propertyA">...</p>
),否则不要将标签名称添加到选择查询中。
如果你反复调用选择器,你应该缓存结果以防止重复搜索(虽然jQuery 1.4为你做了这个我相信)。 就像是:
var $properties = $(".items.container > .item > .property.propertyA");
$properties.map(doStuff());
//later on...
$properties.map(doStuff());
只要你定制了xlmns,这是一个好主意,任何能缩减你开发时间的东西都是一个好主意。 另外,这是为了一个封闭的环境吗? 或者你只是关闭IE支持?
链接地址: http://www.djcxy.com/p/88823.html上一篇: Is it a good idea to create new XHTML markup for speed and readability reasons?
下一篇: Are there any standards for markup like the one that SO site uses?