2010-01-06 37 views
6

我一直在asp.net webforms工作,我一直在做一個UserControl,取決於一小部分的JavaScript在外部文件。asp.net確保JavaScript只加載一次

我想能夠在UserControl中引用JavaScript以確保它在頁面上被加載,但問題在於UserControl可能會在頁面上多次出現,所以我只希望腳本加載UserControl的第一個實例。

是否有一種簡單的方法可以在ASP.NET Webforms中執行此操作?

回答

9

使用ClientScriptManagerRegisterClientScript()方法來處理這個問題。在你的情況下,由於你包含了來自外部文件的腳本,使用RegisterClientScriptInclude()。或者,如果您使用的是UpdatePanels,請使用ScriptManager的等效方法Register...()

+0

正是我所期待的。謝謝 – lomaxx 2010-01-07 01:03:24

-1

引用頁面本身HEAD中的腳本。

<html> 
    <head> 
     ... 
     <script src="<name of file>" type="text/javascript"></script> 
     ... 
    </head> 
    <body> 
     ... 
    </body> 
</html> 
0

如果你控制它的內容,你也可以在JS文件本身中處理這個問題。

var myObj = myObj || {}; // Variable to namespace your work 

// Make sure we do our work only once 
if (!(myObj.token)) { 

    // do our work here... 

    myObj.token = {}; // this ensure we won't enter the if block the next time 

} 
+0

我不知道這將如何確保腳本文件只被加載一次?它會檢查一個腳本是否已被加載,但是能否解釋它將如何確保腳本不會被多次加載? – lomaxx 2010-01-07 01:05:25

+0

是的,從技術上講,該腳本在頁面DOM中包含兩次,並且將由瀏覽器處理兩次。不同的是,在第二遍時,沒有任何反應,因爲myObj.token已經被定義。 – 2010-01-07 05:30:48