zoukankan      html  css  js  c++  java
  • selector优化写法之改变selector的顺序

    例如以下结构,相当于一个只有一层的树。

    代码

    <body>
    <ul class="open" >
    <li>1</li>
    <li>..</li>
    <li>100</li>
    </ul>
    <ul class="open" >
    <li>1</li>
    <li>..</li>
    <li>100</li>
    </ul>
    <ul class="open" >
    <li>1</li>
    <li>..</li>
    <li>100</li>
    </ul>
    <ul>
    ...
    </ul>
    <ul class="closed" >
    <li>1</li>
    <li>..</li>
    <li>100</li>
    </ul>
    <ul class="closed" >
    <li>1</li>
    <li>..</li>
    <li>100</li>
    </ul>
    </body>


    其中,ul.open有5个,ul.closed有95个
    现在想获取'ul.open > li'
    正常的写法,可能是$('ul.open>li')。
    在当前案例下,试想一下:
    如果选择器是从右往左来找,则:先找到100*100个li,再向上寻父ul.open,找到则通过。
    如果选择器是从左往右来找,则:先找到5个ul.open,再寻子,找5*100个li。
    显然,后者快于前者。
    现实情况是:很多selector都是从右往左找的。那我们该怎么来优化这个问题呢?

    嗯,selector是从右往左的,但是我们可以改变它的查找方向
    例如,QWrap里的写法:
    W('ul.open').query('>li'),它返回的结果与W('ul.open>li')是一样的。
    不过在这种情况下,W('ul.open').query('>li')把查询方向改成了从左往右来query。

  • 相关阅读:
    elementui组件库eldialog弹出框被遮罩层挡住
    python常规基础操作
    python中的字典排序
    python列表面试题
    python logging日志模块
    python序列之列表
    jmeter中csv连接数据库
    python必会的知识基础
    jmeter tcp 压力测试
    python模块基础知识练习
  • 原文地址:https://www.cnblogs.com/jkisjk/p/1946936.html
Copyright © 2011-2022 走看看