2011-02-07 38 views
1

我使用<鏈接>屬性包含一個.js文件。HTML:< link >標記不應該多次讀取1個同一文件

<script type="text/javascript" src="script.js"></script> 

我想提出一個條件,它不應該在頁面中包含多次。 我怎樣才能把這樣的條件只在HTML中。如果這僅僅是使用HTML的可能性,那麼我可以使用哪些其他選項來放置這種情況。

回答

3

我認爲這不可能與HTML。 使用JavaScript。

// keep track of scripts 
var scripts = { }; 

function includeOnce(s) { 
    // if the script is not included before 
    if (!(s in scripts)) { 
    // add script 
    var sc = document.createElement('script'); 
    sc.src = s; 
    document.body.appendChild(sc); 
    scripts[s] = 1; 
    } 
} 

要包含的腳本:

<script>{ include_once("script.js") }</script> 
-1

創建您的script.js文件中的全局變量,像:

var isIncluded = true; 

然後包括你的腳本,像這樣

<script>!window.isIncluded && document.write('<script src="script.js"><\/script>')</script> 
+1

`isIncluded`不是全局變量,而且這隻適用於單個腳本。 – ClosureCowboy 2011-02-07 00:10:39

0

除非你的腳本pt在加載時執行代碼可能足以確保您的JS文件被緩存。然後在最糟糕的情況下,您只會發送一個if-modified-since查詢,其開銷很小,特別是在支持HTTP流水線的情況下。

相關問題