代码之家  ›  专栏  ›  技术社区  ›  matdumsa

出于速度和可读性的考虑,创建新的XHTML标记是个好主意吗?

  •  0
  • matdumsa  · 技术社区  · 16 年前

    我是为一家web应用程序初创公司开发的,经常会遇到以下代码。

    <div class="items container">
        <div class="item">
            <div class="property propertyA">Some stuff</div>
        </div>
    </div>
    

    $("div.items.container > div.item > div.property.propertyA").map(doStuff());
    

    问题是,我们经常调用类选择器,直到执行JS的大部分时间都花在运行jQuery的内部curCSS方法上。

    我们在客户端绑定了越来越多的逻辑以适应新的特性。我觉得这种情况不会持续很久,因为有些浏览器已经在某些情况下显示致命的“你的页面没有响应”消息。我们正在考虑很快重构整个客户端。

    我在考虑在一个新的xml名称空间中实现一些新的XHTML标记,这样它看起来就像:

    <items>
        <item>
            <propertyA>Some Stuff</div>
        </item>
    </items>
    

    然后我可以选择以下方式:

    $("items > item > propertyA")
    

    $("propertyA")
    

    如果我错了,请纠正我的错误,但是通过去掉我的慢CSS选择器而改用一些“getElementsByTagName”,可以在这里节省大量的周期,同时使我的CSS更可爱,使整个代码更整洁。这样的解决办法行得通吗?

    顺便说一句:我们假设IE不存在,Firefox3+| | Chrome3+是我们的目标用户。

    2 回复  |  直到 16 年前
        1
  •  1
  •   DisgruntledGoat    16 年前

    我不知道你的建议是否真的有必要,或者会提高速度那么多。但是,如果您知道“property”或“propertyA”类总是在“item”类中,那么只使用 .property .propertyA 作为选择器。

    如果你的 .items.container <p class="propertyA">...</p>

    var $properties = $(".items.container > .item > .property.propertyA");
    $properties.map(doStuff());
    //later on...
    $properties.map(doStuff());
    
        2
  •  0
  •   Rixius    16 年前

    只要你定制了xlmns,这是个好主意,任何缩短开发时间的东西都是个好主意。另外,这是一个封闭的环境吗?或者你只是在关闭IE支持?