JavaScript终止脚本而没有抛出错误

时间:2015-09-20 21:09:03

标签: javascript jquery ajax

我有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?

的方法

2 个答案:

答案 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>");
}