[英]How to include javascript file only once
我想給客戶一個HTML塊,他們可以將其包括在他們的站點中,並且此HTML將包含一些表和圖像,以及一個將對HTML塊進行操作的JavaScript。 所以我給他們HTML:
<a data-theme="1" data-srv="http://localhost:50987/" class="block1" href="http://myserver/payment/Details">outer information</a><script type="text/javascript" src="http://myserver/Scripts/checkout.js"></script>
在checkout.js中,如果文檔中不存在Jquery,並且包含對$('a.block1')元素的操作,我已經包含了JQuery ...問題是,當有人在同一頁上再放置此HTML塊一次時,我希望客戶端不會再調用一次“ checkout.js”,
我試過在“ checkout.js”中聲明全局變量,並檢查是否存在,最好停止一次以上的相同操作,但是我想一起停止對JS al的調用。
Javascript加載后運行,如果多次引用,則無法停止JS的運行。 它不會多次加載,因此再次運行的開銷基本上為零。
要停止再次發生javascript行為,只需將檢查放在文件的頂層,將文件的其余部分放在有條件的文件中,然后寫入全局變量以確保您不會再次運行。
if (window._your_unique_id === undefined) {
window._your_unique_id = true;
// the rest of your javascript
}
這將意味着腳本不會運行。 您仍然可以在if語句中定義所需的內容,盡管如果在其中定義函數和變量,則可能必須將它們明確地放在window對象上,因為否則它們將是局部的(但是,這樣做是不明智的做法)無論如何都具有全局隱式定義的內容,因此,如果您的代碼結構合理,則應該沒有任何區別)。
只需將代碼部署為模塊即可。
就是
(function(window){
if(window.CheckoutModule) return;
// now you're certain there's no global module loaded
var CheckoutModule = window.CheckoutModule = {};
// you can, ie, add a jQuery check here.
if('undefined' != typeof jQuery) {
// do your jQuery thing here.
}
return ;
})(window, jQuery);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.