作者TonyQ (沉默是金)
看板Ajax
標題Re: [ js ] .js include js檔
時間Fri Jul 18 22:28:31 2008
※ 引述《hyderai (飄)》之銘言:
: 是因為變數scope的問題,還是其他原因?有解決方式嗎?
: js檔include其他js檔、css檔是不是不常見,
: 因為沒有include,所以code reuse只能用複製的方式嗎?
我說說我的看法 , 會有include通常是希望達到lazy load的要求,
也就是「我需要的我再讀取,我不需要的就不要進來」。
在解決這個問題上方案目前不多,不過還是有,
一些lib都有類似的作法,比方說dojo的import,JQuery的load等。
其實複製不複製倒不是重點,幾乎所有server side都支援include,
把共用的js檔include到頁面中即可,比較大的問題通常是在於載入的流量。
但事實上,會造成這樣的理由是比起不採用Lazyload所造成的資源負擔,
「由於request過多所帶來的多餘等待時間」才是真的讓人會想殺人的。
所以很多站都寧可把所有js檔packing成一包(最好再gzip一下)就在這裡,
假設request交握的過程是100ms,10個非defer的js檔就是1000ms (1秒)。
跟減少不重複的精簡使用script,打成一包這樣來得更實際。
(有些「想像上的完美」真的只是存在於想像中的事情,
這種事情在經營百人的網站上就能看見了,還不用到千人。)
回到正題, 這是一個別人所作的解決方案 , (
http://0rz.tw/f74l3 )
他不只精準的解決js loading的問題,
更解決了在loading之外,相依性的問題,
像jquery plug-in 必須depend on jquery 等, 算是蠻值得參考的.
但如前面所述,當你大多數頁面都需要載入多個js file時,
應該要把打包js檔案列入考慮,而不是取用lazy load 方案。
--
▄▅▆▇███▇▆▅▄▃ ╰┼╯─╮ ╮
◥███████████◣ ╰┼╯=│=│
◥██████───────◣ *. ╯ ╯ ╯ の 物 語 .*
◥███████──────◣ ~ ◢◣ ◢◣
◥██████───────◤ ◥◤* 空白的世界.翼
*◥◤
◥██▁▂▃▄▅▆▇███▆▅▄▃▂▂
~telnet://tony1223.no-ip.info
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.134.27.68
1F:推 wctang:所以是各有用途,有些環境下是必須用lazy loading 07/19 10:12
2F:→ wctang:(ex:Greasemonkey, 奇怪這個版很少討論到它) 07/19 10:12
3F:→ wctang:不過jQuery有lazy loading的功能,預設load jQuery就可免去 07/19 10:12
4F:→ wctang:前面討論的麻煩事了 07/19 10:13
5F:→ TonyQ:能見度跟使用者族群的問題...我承認我沒看過Greasemonkey XD 07/19 12:55
6F:→ TonyQ:感謝樓上的資訊._.a 07/19 12:55