簡體   English   中英

JavaScript包括

[英]JavaScript includes

我有4個javascript文件(每個用於單個HTML文件),所有4個文件中有3個函數是相同的。 我想找到一個平滑的解決方案,我可以分別包含這三個函數...是否可以在.js中包含.js?

  1. 您可以擁有多個<script>標記:

     <script src="lib.js"></script> <script> // do stuff </script> 
  2. 你可以使用jQuery

     $.getScript("lib.js", function() { // do stuff }); 
  3. 您可以使用預處理器一樣browserify的YUICompressor谷歌的關閉編譯器

您可以自己編寫,例如,因為它適用於谷歌分析:

(function(){
    var lastIncludedScript = document.getElementsByTagName('script')[0];
    var yourScript = document.createElement('script');
    yourScript.type = 'text/javascript';
    yourScript.src = 'path/to/script.js';
    lastIncludedScript.parentNode.insertBefore(yourScript, lastIncludedScript);
})();

或者在功能上:

function includeScript( path ){
    var lastIncludedScript = document.getElementsByTagName('script')[0];
    var yourScript = document.createElement('script');
    yourScript.type = 'text/javascript';
    yourScript.src = path;
    lastIncludedScript.parentNode.insertBefore(yourScript, lastIncludedScript);
}

用法:

includeScript( 'path/to/script.js' );

你可以看一下關於異步加載javascript文件的這個很好的解釋 這可以解決您的問題。 或者看看這個堆棧溢出問題,關於如何在其他javascript文件中加載javascript文件。

但是,在一個單獨的javascript文件中包含您使用的所有內容並在每個站點上加載相同的文件可能值得一試。 這樣可以提高性能,因為只需要一個http請求來加載所有javascript,並且可以非常高效地緩存它(因此以后不需要加載任何javascript)。

使用每個html文件中所需的正確js文件。 這將解決您的問題。 還可以為兩個html文件添加一個包含一般功能的功能。 這應該可以解決您的問題。

在瀏覽器中包含來自其他JavaScript的文件有點慢。 我會編寫一個服務器端腳本來將所有相關的JavaScript組合並縮小為一個“文件”以發送給客戶端。

您的頁面可以將參數傳遞給此腳本以選擇需要包含的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM