如何判斷 JavaScript 文件是否已包含在 ASP.NET 頁面中?
我有一個 ASP.NET 使用者控制項(.ascx 文件)。在這個使用者控制項中,我想使用一個 .js 文件。
所以我包括
<script src="file.js" type"text/javascript"></script>在頁面上。但是,有時我在已經載入了相同腳本的網頁中使用此使用者控制項。
如何添加
<script />僅當頁面尚未包含<script />同一腳本的另一個標記時才會在頁面上呈現的聲明?
當您使用 asp.net 時,檢查伺服器端是有意義的,因為您選擇在其中添加對 javascript 文件的引用。從您的 .ascx 文件中,您可以註冊以下內容:
this.Page.ClientScript.RegisterClientScriptInclude("GlobalUnqiueKey", UrlOfJavascriptFile);…從您的頁面中,您只需直接呼叫 ClientScript 對象:
ClientScript.RegisterClientScriptInclude("GlobalUnqiueKey", UrlOfJavascriptFile);‘GlobalUniqueKey’ 可以是任何字元串(我也為此使用了 javascript 文件的 url)
如果您嘗試使用相同的密鑰字元串註冊腳本,它不會做任何事情。因此,如果您在您的頁面、控制項或其他任何地方呼叫它,您最終將在您的頁面中只有一個引用。這樣做的好處是您可以在頁面上擁有多個控制項實例,即使它們都嘗試註冊相同的腳本,但最多只能完成一次。他們都不需要擔心腳本已經註冊。
有一個“IsClientScriptIncludeRegistered(stringkey)”方法,您可以使用該方法查看腳本是否已包含在該鍵下,但在註冊為多次嘗試註冊之前進行檢查似乎非常多餘,不會引發異常或導致任何其他錯誤。
在客戶端進行檢查意味著,假設瀏覽器記憶體了多個 javascript 引用(它們可能沒有記憶體),您仍然有多個標籤,並且每個標籤的成本都會導致一些 javascript 執行。如果您在一個頁面上有 20 個控制項實例,您可能會遇到嚴重的問題。