簡體   English   中英

如何只包含一次javascript文件

[英]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.

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