2014-02-24 43 views
1

我包括jQuery的外部JS用命令文件:的JavaScript包括2次相同的外部JS

<script type='text/javascript' src='js/jquery-1.11.0.js' ></script> 

我將在同一頁面下方一點點再次調用它(這是因爲我包括這用php類來確保它在繼續之前被加載)。因此,在該頁面,我會在不同的地方2倍線:

<script type='text/javascript' src='js/jquery-1.11.0.js' ></script> 

我想知道這是否會建立在我的網頁,如果腳本jQuery將裝載2倍這將是inneficient問題。

謝謝,

約翰。

+0

除了生成下載的數據的開銷,包括jQuery的插件,當您加載之前,腳本第二次(因爲這將再次改寫插件),則可能會出現問題。你真的需要第一次包含jQuery嗎? – m90

+1

可能重複http://stackoverflow.com/questions/4891278/what-is-the-danger-in-including-the-same-javascript-library-twice –

回答

3

這將爲所包含這兩個包之間的任何插件的問題。例如,如果您有:

<script type='text/javascript' src='js/jquery-1.11.0.js' ></script> 
<script type='text/javascript' src='js/jquery-plugin.js' ></script> 
<script type='text/javascript' src='js/jquery-1.11.0.js' ></script> 

jQuery的plugin.js將被覆蓋,它不會工作。

3

它將包括兩次。沒有必要這樣做。如果您絕對必須在兩個地方寫入包含標籤,請有條件地進行第二次。下面的代碼將僅包含jQuery,如果它尚未包含。

<script> 
    window.jQuery || document.write('<script src="js/jquery-1.11.0.js"><\/script>') 
</script> 
0

它應該沒問題,特別是在現代瀏覽器中,但這樣做有點奇怪。

如果您在第一個腳本標記之後加載jQuery插件,它們將不再起作用,因爲jQuery/$已被重新初始化。

我想不出任何理由你需要加載這兩次,但 - 你確定你需要嗎?您最好的選擇是在關閉<body>標籤之前,將腳本標籤放在頁面底部。

0

根據庫,其中包括一次以上可能有不想要的效果。它是這樣

想,如果你有一個結合的Click事件的按鈕一個腳本,您包含腳本兩次,這些行動將兩次單擊按鈕時運行。

你可以寫你打電話加載腳本,並將它保持跟蹤已加載文件的簡單功能。或者,我相信你可以使用一個預先存在的JS加載器,比如LabJS並修改它。


參考: What is the danger in including the same JavaScript library twice