Re: [問題] 油猴腳本越來越肥了,求優化方案
※ 引述《TonyQ (自立而後立人。)》之銘言:
: ◆ From: 114.25.96.203
: ※ 編輯: TonyQ 來自: 114.25.96.203 (07/02 23:18)
: → TonyQ:然後你程式碼裡面 contains 那段也超慢得,可以一樣用建表 07/02 23:20
: → TonyQ:法處理。 07/02 23:20
: → ff760725:請問建表法是...?事實上我基本是程式盲,只是把現成的 07/02 23:30
: → ff760725:拿來,用Chrome查元素之後填上去而已...可否請您開個頭, 07/02 23:31
: → ff760725:後面重複複製貼上的工作我來就好了 XDD 07/02 23:31
以這段舉例好了
var Asia = new Array(99)
//india
Asia [0] = $("#pvp_header > h2:contains('Andhra Pradesh')")
Asia [1] = $("#pvp_header > h2:contains('Bihar')")
Asia [2] = $("#pvp_header > h2:contains('Chhattisgarh')")
Asia [3] = $("#pvp_header > h2:contains('Gujarat')")
Asia [4] = $("#pvp_header > h2:contains('Jammu and Kashmir')")
Asia [5] = $("#pvp_header > h2:contains('Jharkhand')")
Asia [6] = $("#pvp_header > h2:contains('Karnataka')")
Asia [7] = $("#pvp_header > h2:contains('Kerala')")
Asia [8] = $("#pvp_header > h2:contains('Madhya Pradesh')")
Asia [9] = $("#pvp_header > h2:contains('Maharashtra')")
Asia [10] = $("#pvp_header > h2:contains('Northern India')")
Asia [11] = $("#pvp_header > h2:contains('Orissa')")
Asia [12] = $("#pvp_header > h2:contains('North Eastern India')")
Asia [13] = $("#pvp_header > h2:contains('Rajasthan')")
Asia [14] = $("#pvp_header > h2:contains('Tamil Nadu')")
Asia [15] = $("#pvp_header > h2:contains('Uttar Pradesh')")
Asia [16] = $("#pvp_header > h2:contains('West Bengal')")
假設 0-16 的順序對你很重要的話,可以寫成這樣
var asiamap = {
'Andhra Pradesh':0,
'Bihar':1,
'Gujarat':2,
'Jammu and Kashmir':3,
'Jharkhand':4,
'Karnataka':5,
'Kerala':6
/* 以此類推 */
};
var Asia = [];
$("#pvp_header > h2").each(function(){
//這邊需要做一點字串上的判定,想辦法找出對應的字串 key,
//如果這個選項內容直接就對應到字串那就可以直接做了。
var key = $(this).text(); //範例實作,可能會需要調整
var result = asiamap[key];
if ( result != null){
Asia[result] = $(this);
}
});
基本上就是打索引取代搜尋,你原本這種寫法每個 selector 都需要搜遍所有 h2,
如果能只搜尋一次就把需要的東西都找回來,
那效率會從 O(n^2) 變成 O(n) 會差蠻多的。
--
網頁上拉近距離的幫手 實現 GMail豐富應用的功臣
數也數不清的友善使用者體驗 這就是javascript
歡迎同好到 AJAX 板一同討論。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.25.96.203
推
07/03 00:57, , 1F
07/03 00:57, 1F
推
07/03 01:16, , 2F
07/03 01:16, 2F
→
07/03 01:17, , 3F
07/03 01:17, 3F
→
07/03 01:17, , 4F
07/03 01:17, 4F
→
07/03 01:17, , 5F
07/03 01:17, 5F

→
07/03 01:19, , 6F
07/03 01:19, 6F
→
07/03 01:42, , 7F
07/03 01:42, 7F
→
07/03 01:42, , 8F
07/03 01:42, 8F
→
07/03 01:42, , 9F
07/03 01:42, 9F
推
07/03 02:04, , 10F
07/03 02:04, 10F
→
07/03 02:05, , 11F
07/03 02:05, 11F
→
07/03 10:21, , 12F
07/03 10:21, 12F
推
07/03 13:43, , 13F
07/03 13:43, 13F
推
07/03 23:04, , 14F
07/03 23:04, 14F
→
07/03 23:05, , 15F
07/03 23:05, 15F
討論串 (同標題文章)
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章