作者TonyQ (自立而後立人。)
看板Ajax
标题Re: [问题] 油猴脚本越来越肥了,求优化方案
时间Wed Jul 4 00:01:33 2012
※ 引述《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
1F:推 ff760725:我是要当h2里有某些特定词组的时候,就能启动一组code 07/04 01:13
2F:→ ff760725:所以我底下会有 07/04 01:13
3F:→ ff760725:for (i = 0; i < 26 ; i++) { 07/04 01:13
4F:→ ff760725: if (Oceania[i].text()){ 里面包着的东西 07/04 01:14