作者ff760725 (信圓香,得永萌。)
看板Ajax
標題[問題] 腳本越來越肥了,求優化方案
時間Mon Jul 2 21:36:54 2012
我正在寫一個將某網頁遊戲許多圖片都替換掉的script
裡面有很多像是這種的內容
//--------------------------------------------------------------------
//www.erepublik.com/en/economy/advanced-buildings
//--------------------------------------------------------------------
if (document.location.toString().indexOf("/economy/advanced-buildings")!==-1)
{
$(".listing_holder > .list_group > .listing > .area_pic > img[src=
'
http://www.erepublik.com/images/modules/myland/buildings
/health_100.png']").attr('src','
http://i.imgur.com/qVEfJ.png');
$(".listing_holder > .list_group > .listing > .area_pic > img[src=
'
http://www.erepublik.com/images/modules/myland/buildings
/health_200.png']").attr('src','
http://i.imgur.com/RLJEh.png');
$(".listing_holder > .list_group > .listing > .area_pic > img[src=
'
http://www.erepublik.com/images/modules/myland/buildings
/health_300.png']").attr('src','
http://i.imgur.com/TeWP9.png');
$(".listing_holder > .list_group > .listing > .area_pic > img[src=
'
http://www.erepublik.com/images/modules/myland/buildings
/health_400.png']").attr('src','
http://i.imgur.com/I3rRj.png');
$(".listing_holder > .list_group > .listing > .area_pic > img[src=
'
http://www.erepublik.com/images/modules/myland/buildings
/health_500.png']").attr('src','
http://i.imgur.com/pAbTR.png');
$(".listing_holder > .list_group > .listing > .area_pic > img[src=
'
http://www.erepublik.com/images/modules/myland/buildings
/health_600.png']").attr('src','
http://i.imgur.com/RGeQb.png');
$(".listing_holder > .list_group > .listing > .area_pic > img[src=
'
http://www.erepublik.com/images/modules/myland/buildings
/special_50.png']").attr('src','
http://i.imgur.com/W34wz.png');
$(".listing_holder > .list_group > .listing > .area_pic > img[src=
'
http://www.erepublik.com/images/modules/myland/buildings
/special_100.png']").attr('src','
http://i.imgur.com/DW37w.png');
$(".listing_holder > .list_group > .listing > .area_pic > img[src=
'
http://www.erepublik.com/images/modules/myland/buildings
/special_200.png']").attr('src','
http://i.imgur.com/V458I.png');
};
但在不知不覺間隨著要替換的圖片越來越多,script也越來越肥
現在已經超過100kb了,而且在執行上也能感覺到有遲鈍的情形發生...
請問有優化方案嗎?
感謝 <(_ _)>
附上原script
雖然以上的最新一段還沒上傳到網上,但原理都是一樣的
http://synex520free.kilu.de/0_plugin/Touhou.user.js
--
無論在什麼遊戲中,只有勇於面對的人才會獲得報酬。
遊戲雖然不是人生,但人生卻是遊戲。
最糟糕的遊戲平衡度,不親切的NPC,前後矛盾的劇本。
但是,能不能享受這個遊戲則在於個人。
即使是垃圾遊戲,真正投入的話或許能感受到意外的樂趣,結束時反而會認為這是個名作
也說不定。 岡本 タクヤ《千の剣の舞う空に》
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.117.183.232
※ 編輯: ff760725 來自: 122.117.183.232 (07/02 21:42)
1F:推 eight0:改用純JavaScript 07/02 22:11
2F:→ j100002ben:怎麼不把listing_holder .area_pic > img下面的img一次 07/02 22:45
3F:→ j100002ben:抓出來迴圈跑一次,圖片url可以用json直接key-value換 07/02 22:45
4F:→ j100002ben:還有,前面selector的階層不要太多..可以減少就少些吧. 07/02 22:46
5F:→ j100002ben:如果可以的話,不要用src,用CSS Sprite感覺比較好.. 07/02 22:48
6F:→ j100002ben:原本的src直接換成blank.gif就好了.. 07/02 22:48
7F:→ j100002ben:我有調好得Code,不過沒啥時間測試,私信來吧XD 07/02 23:12
8F:→ j100002ben:不過我不確定效能會不會比較好啦...應該會(被打) 07/02 23:12
9F:→ mesak:似乎是遊戲的佈景阿....如果可以改 css 直接套 css 3 比較快 07/04 14:47