首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RequireJS:如何卸载以前加载的javascript文件?又是独家婚恋?或者重置RequireJS?

RequireJS:如何卸载以前加载的javascript文件?又是独家婚恋?或者重置RequireJS?
EN

Stack Overflow用户
提问于 2013-08-29 21:05:14
回答 1查看 4.3K关注 0票数 2

我有两个不能共存的javascript文件。如果用户单击一个按钮,它将加载一个js文件。如果用户单击另一个按钮,它将加载另一个文件。但最后一个需要先卸载

以下是我所拥有的一般情况:

代码语言:javascript
复制
//pseudocode
if user clicks button one
    loadScript(one);
if user clicks button two
    loadScript(two);

//not psuedocode
function loadScript(name)
{
      var javascriptLoc = name + "/config.js";

      //Unload any scripts that were previously loaded by requirejs
      require.undef(); //HELP

      //once config.js is loaded by requirejs...
      require([javascriptLoc], function(util) {

          //do stuff

      });
}

有办法卸载一个/config.js并加载两个/config.js吗?然后,当用户单击"one“时,它会加载一个/config.js而不是两个/config.js?

这个问题的其他表达方式:

  • 当我有的独家受抚养人.
  • 我如何处理冲突解决在需求.
  • 我如何重置或卸载脚本以前加载的需求.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-04 17:46:28

严格地说,浏览器不允许您卸载JavaScript文件。如果您加载的文件a.js如下:

代码语言:javascript
复制
var a = 345;

JS/HTML中没有任何命令可以撤消该操作。(另见herehere)

您可以加载一组新的JS命令,这些命令否定第一个文件的效果,例如:

代码语言:javascript
复制
if (typeof a === "undefined") 
   var a = 34;
else
   a = 34;

这件事开始变得复杂了,不是吗?重新设计模块可能更容易,因此不必重新加载,例如:

代码语言:javascript
复制
function option1() {
}
function option2() {
}

//if user clicks button 1
currentOption = option1();
//if user clicks button 2
currentOption = option2();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18520963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档