看板 Web_Design 關於我們 聯絡資訊
順著Opera 10 alpha 1的推出, 我注意到Selector API這個東西。 http://www.w3.org/TR/2008/WD-selectors-api-20081114/ 基本上這個東西可以像是jquery那樣 以css形式的selector 去取得網頁上的元素(elements) <用法> 從w3c的網頁上我們可以看到他有兩個函數(method) http://www.w3.org/TR/2008/WD-selectors-api-20081114/#dom-document-selector Element querySelector(in DOMString selectors); NodeList querySelectorAll(in DOMString selectors); 其中querySelector是回傳找到的第一個 querySelectorAll是回傳找到的Element的NodeList 大概的用法也可以從該網頁找到 例如querySelectorAll的例子 <code> var lis = document.querySelectorAll("ul.nav>li"); for (var i = 0; i < lis.length; i++) { process(lis.item(i)); } /** * ECMAScript裡面可以把lis.item(i)寫成lis[i] */ function process(elmt) { elmt.parentNode.removeChild(elmt); } </code> </用法> 進入正題,當然如果瀏覽器本身就支援(Native)這樣的東西 好處就是 使用起來應該會比用JavaScript library模擬的快 而目前測過Windows下的瀏覽器 IE, Firefox, Safari, Chrome, Opera 實驗: 使用 http://www2.webkit.org/perf/slickspeed/ 以Native是否失敗當做判斷是否支援的依據 瀏覽器 支援 IE 8 beta 2 Yes IE 7 No Firefox 3.1 beta 2 Yes Firefox 3.0.4 No Safari 3.2.1 Yes Chrome 1.0.154.36 Yes Opera 10 alpha 1 Yes Opera 9.62 No 註:黃色代表該瀏覽器中 所測試的最新版本 可以看到即將出來的瀏覽器 漸漸的支援Selectors API 不過其中一個使用Selectors API的問題是 要看瀏覽器對於該selector的支援度 例如IE似乎對於div:only-child這樣的selector不支援 如果使用比較特別的selector的話 可能要自行注意一下 另外,例如取得id和body這樣的操作 透過selectors api不一定比較快就是了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.203.6