要求js删除定义以强制重新加载

Chi*_*hin 6 requirejs js-amd

出于测试目的,我试图删除一些amd模块并从服务器重新加载更新版本 - 目的是不刷新浏览器.

我目前正在执行以下操作,但浏览器仍然无法从网络重新加载项目.

var scripts = document.getElementsByTagName('script');
var context = require.s.contexts['_'];
for (var key in context.defined) {
  if(key.indexOf("tests")>-1){
  requirejs.undef(key);
  for (var i = scripts.length - 1; i >= 0; i--) {
  var script = scripts[i];
  var attr = script.getAttribute('data-requiremodule')
    if (attr === key){
    script.parentNode.removeChild(script);
    }
  }}
Run Code Online (Sandbox Code Playgroud)

它从上下文中删除引用并成功删除脚本标记.可惜...

有谁知道清除requirejs的所有引用的机制?

任何帮助非常感谢

Whi*_*ire 8

我们目前正在尝试此实施:

require.onResourceLoad = function(context, map)
{
    require.undef(map.name);
};
Run Code Online (Sandbox Code Playgroud)

到目前为止没有任何问题浮出水面.

编辑:IE并不关心这个修复.Chrome和FF很好.

此外,您应该尝试在PhpStorm中进行实时编辑.奇迹般有效.这里可以看到一个演示.仅限Chrome.