因爲3G連接一個HTTP請求,甚至更多的數據的高延遲的,往往是很多比多個更小的請求更快。
這篇文章提出了什麼是多個模塊組合成一個文件是這樣的:
var modules = {
'main.js': 'alert("Main module")',
'another.js': 'alert("Another module")',
'notUsed.js': 'alert("I am never used")',
};
這樣,他們都可以用這是更快了一個HTTP請求下載的,你仍然可以只包括/評估你需要的模塊。
例如你可以這樣做:
var requireFile = function(file) {
if(modules[file])
eval(modules[file]);
};
requireFile('main.js');
requireFile('another.js');
只有main.js
和another.js
會進行評估,notUsed.js
也只是被忽略。
安全方面,通過<script>
標籤包含它們應該沒有什麼不同,前提是用於組合腳本的任何內容都不會意外地組合/包含其他文件/字符串。
所以從安全的角度來看,不應該從以上,這有什麼區別:
<scruipt src="main.js"></script>
<scruipt src="another.js"></script>
當然,你仍然有other disadvantages of eval。
來源
2013-05-06 14:32:40
Sam
我認爲你可以100%控制靜態字符串(你的代碼 - 你計劃執行,只是延遲加載)是好的。 – Patashu 2013-05-06 09:37:10
我不明白爲什麼要將代碼加載爲字符串,而不是腳本文件,爲什麼這會更快? – Bergi 2013-05-06 10:19:18
很難調試評估腳本。沒有優化。但這是「很好的評估」:http://www.youtube.com/watch?v=Kdwwvps4J9A – 3y3 2013-05-06 10:43:02