<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Q.jsCSS 選擇器

          聯(lián)合創(chuàng)作 · 2023-09-22 12:39

          1, 和Sizzle的兼容
          Q(expr, context, result, seed)
          Q.matches
          支持Sizzle特別的setFilter偽類如:even,:first,:last,:lt...
          支持復(fù)雜的:not和:has選擇器(和sizzle一樣)

          2, 結(jié)果的正確性
          Sizzle在某些選擇器上由于查詢策略的原因,會返回錯(cuò)誤的結(jié)果
          考慮在這樣的html上查詢
          "<div/><h1/><h1/><div/>"
          查詢 div~div : 應(yīng)返回1個(gè)節(jié)點(diǎn)
          查詢 h1~div: 應(yīng)返回1個(gè)節(jié)點(diǎn)
          查詢 div+h1~div: 應(yīng)返回一個(gè)節(jié)點(diǎn),但是Sizzle沒有找到節(jié)點(diǎn)

          另外
          div.querySelectorAll("body *")會返回節(jié)點(diǎn)
          所以在以元素為context的查詢中不使用querySelectorAll進(jìn)行優(yōu)化

          3, 性能
          將選擇器編譯成函數(shù)再進(jìn)行查詢,除了第一次查詢需要jit編譯之外,以后每次查詢都是最快的速度
          查詢策略引擎會分析選擇器的組成,選擇最恰當(dāng)?shù)牟樵儾呗裕◤拈_始查還是從末尾查還是從中間開始)
          排除不必要的運(yùn)算,如sizzle中的:lt偽類,這里查詢時(shí)找夠節(jié)點(diǎn)就會跳出查詢,不會繼續(xù)做無謂的查詢

          瀏覽 16
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  在线观看免费AV网站 | 激情五月天激情网 | 丁香五月成人社区 | 日韩黄在线 | AV电影中文字幕一区 |