如何只包含一次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>
在结帐中.js如果文档中不存在 Jquery 并对元素 $('a.block1') 进行操作,我已经包含了 JQuery......问题是当有人在同一页面上多次放置此 HTML 块时,我希望客户端不会多次调用"checkout.js",
我尝试在"checkout.js"中声明全局var并检查它是否存在,停止多次执行相同的操作效果很好,但我想一起停止对 JS al 的调用。
Javascript在加载后运行,如果JS被多次引用,则无法停止JS运行。它不会被多次加载,所以它再次运行的开销基本上为零。
要阻止 javascript 的行为再次发生,只需将检查放在文件的顶层,将文件的其余部分放在条件中,然后写入全局变量以确保不会再次运行。
if (window._your_unique_id === undefined) {
window._your_unique_id = true;
// the rest of your javascript
}
这将意味着脚本运行中的任何内容。你仍然可以在 if 语句中定义任何你喜欢的东西,但如果你在其中定义函数和变量,你可能必须将它们显式地放在窗口对象上,因为它们本来是局部的(但是,无论如何,隐式定义全局的东西都是不好的做法,所以如果你的代码结构良好,它应该没有任何区别)。
只需将代码部署为模块即可。
即。
(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);
相关文章:
- 使用压缩的JavaScript文件(不是运行时压缩)
- 如何包含特定于每个视图angularjs的javascript文件
- 将数据从javascript文件导入VB.Net页面
- Chrome加载旧版本的Javascript文件
- 操作员”;新的“;根据我想在几个JavaScript文件中使用的类,在JavaScript中使用
- gulp-if-javascript文件,但不在gulp-useref的特定目录中
- 如何在visualstudio中调试web api时编辑javascript文件
- 关于引入外部javascript文件的问题&css通过https
- 有没有办法在tinymceiframe中加载一个外部javascript文件
- 什么'是在asp.net MVC中将本地化的resources.resx文件转换为javascript文件的有效
- 在一个javascript文件中为整个网站创建标签
- 如何在定义js文件后为外部javascript文件设置变量
- 显示IIS上javascript文件(SOAP请求)的XML响应
- ResolveUrl没有'我似乎不适合当链接到具有动态虚拟目录的外部javascript文件时
- 我应该将MVC视图特定的javascript文件放在哪个文件夹中
- Django'支持Javascript文件中的翻译
- MVC正在忽略我的Javascript文件
- 为什么不't我的ruby代码与javascript文件一起插入
- 在Javascript文件中获取PHP变量
- 如何在Windows中将Javascript文件编译成二进制文件