我有AJAX导航的网站。 main.js处理AJAX导航和其他一些任务。 我的一些子页面需要自己的脚本,例如我们以画廊为例。
在main.js中,我有加载图库内容和gallery.js的功能(gallery.js只是添加到head标签中)。 一切正常,直到我离开画廊并再次进入画廊。结果我有两个gallery.js工作,破坏了一切。
我试过了:
删除了画廊休假的<script type="text/javascript" src="js/gallery.js"></script>
,但这并没有改变任何内容
使用throw
但它终止了gallery.js和main.js,因此AJAX导航模具
有没有终止/停止gallery.js而没有终止main.js?
的方法答案 0 :(得分:1)
这实际上更多地是关于代码架构而不是其他任何内容。
您的代码应该看起来像这样
function loadGalleryFor(element) {
var active = true;
// async load here while active == true
return {
stop:function() { active = false; }
loading:function() { return active; }
};
}
你称之为:
var galleryCtl = loadGalleryFor(...);
当你需要时你可以简单地停止它:
galleryCtl.stop();
答案 1 :(得分:0)
根据评论中的代码,首先检查一下图库脚本是否已在头部中:
if ($("head>script[src='gallery.js']").length === 0) {
$("head").append("<script src='gallery.js'></script>");
}