Re: [問題] 油猴腳本越來越肥了,求優化方案

看板Ajax作者 (自立而後立人。)時間14年前 (2012/07/04 00:01), 編輯推噓1(103)
留言4則, 1人參與, 最新討論串4/4 (看更多)
※ 引述《TonyQ (自立而後立人。)》之銘言: : //如果這個選項內容直接就對應到字串那就可以直接做了。 : var key = $(this).text(); //範例實作,可能會需要調整 : var result = asiamap[key]; : if ( result != null){ : Asia[result] = $(this); : } : }); : 基本上就是打索引取代搜尋,你原本這種寫法每個 selector 都需要搜遍所有 h2, : 如果能只搜尋一次就把需要的東西都找回來, : 那效率會從 O(n^2) 變成 O(n) 會差蠻多的。 以你的例子來講,你的 #pvp_header > h2 只有一個, 卻要用 contains 查 n 次,這樣實在是很不經濟。 var oceania = { 'Tasmania':21 }; //原本是 //Oceania [21] = $("#pvp_header > h2:contains('Tasmania')") var Oceania = []; $("#pvp_header > h2").each(function(){ //這邊需要做一點字串上的判定,想辦法找出對應的字串 key, //如果這個選項內容直接就對應到字串那就可以直接做了。 var key = $(this).text(); //範例實作,可能會需要調整 var result = asiamap[key]; if ( result != null){ Oceania[result] = $(this); } }); http://screencast.com/t/VKfwVauT 基本上應該很好 optimize 才對,這也只是其中一種方法而已, 實際上應該是看你拿這個h2來幹麼,還有機會再更簡單一點。 -- 網頁上拉近距離的幫手 實現 GMail豐富應用的功臣 數也數不清的友善使用者體驗 這就是javascript 歡迎同好到 AJAX 板一同討論。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.241.140.152

07/04 01:13, , 1F
我是要當h2裡有某些特定詞組的時候,就能啟動一組code
07/04 01:13, 1F

07/04 01:13, , 2F
所以我底下會有
07/04 01:13, 2F

07/04 01:13, , 3F
for (i = 0; i < 26 ; i++) {
07/04 01:13, 3F

07/04 01:14, , 4F
if (Oceania[i].text()){ 裡面包著的東西
07/04 01:14, 4F
文章代碼(AID): #1FynTVRh (Ajax)
文章代碼(AID): #1FynTVRh (Ajax)