RequireJS:如何卸载以前加载的javascript文件?又称独家依赖?或者重新设置RequireJS?
我有两个不能共存的javascript文件。 如果用户单击一个按钮,它将加载一个js文件。 如果用户单击另一个按钮,它将加载另一个文件。但最后一个需要先卸载 以下是我的大致情况:RequireJS:如何卸载以前加载的javascript文件?又称独家依赖?或者重新设置RequireJS?,javascript,jquery,html,requirejs,Javascript,Jquery,Html,Requirejs,我有两个不能共存的javascript文件。 如果用户单击一个按钮,它将加载一个js文件。 如果用户单击另一个按钮,它将加载另一个文件。但最后一个需要先卸载 以下是我的大致情况: //pseudocode if user clicks button one loadScript(one); if user clicks button two loadScript(two); //not psuedocode function loadScript(name) { v
//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?然后,当用户单击“一”时,它将加载一个/config.js而不是两个/config.js
其他表达问题的方式:
- 当我有排他依赖项时,我在requirejs中做什么
- 如何处理requirejs中的冲突解决
- 如何重置或卸载以前由requirejs加载的脚本
var a = 345;
JS/HTML中没有可以撤消该操作的命令。(另见,和)
您可以加载一组新的JS命令,以消除第一个文件的影响,例如:
if (typeof a === "undefined")
var a = 34;
else
a = 34;
function option1() {
}
function option2() {
}
//if user clicks button 1
currentOption = option1();
//if user clicks button 2
currentOption = option2();
但这开始变得复杂了,不是吗?重新设计模块可能更容易,因此无需重新加载,例如:
if (typeof a === "undefined")
var a = 34;
else
a = 34;
function option1() {
}
function option2() {
}
//if user clicks button 1
currentOption = option1();
//if user clicks button 2
currentOption = option2();
…除了RequireJS,我还需要使用其他方法吗(其他脚本加载器也无法卸载脚本。:(重点是使这些脚本文件共存。有各种方法可以沙盒脚本文件的内容。是否不删除实际的脚本标记卸载相关脚本文件?