Javascript 是否可以阻止/删除dojo.require声明的任何缓存脚本?

Javascript 是否可以阻止/删除dojo.require声明的任何缓存脚本?,javascript,dojo,Javascript,Dojo,我遇到了一个问题,页面的大部分主逻辑在JS文件中偏移,并在dojo.require调用中初始化,以简化调试和开发。我们遇到了这样一种情况:卸载到另一个页面,然后返回到第一个页面,而我们的脚本中没有任何内容需要加载。我理解这部分是由于dojo.require如何重新使用缓存页面,但我也不能回到缓存版本。除了将所有脚本粘贴到页面本身之外,还有没有其他方法可以强制Dojo重新加载任何require,而不管它是否已被缓存?是否有理由不能以“正确”的方式执行此操作,将相关代码放入函数中,然后在需要时再次调

我遇到了一个问题,页面的大部分主逻辑在JS文件中偏移,并在dojo.require调用中初始化,以简化调试和开发。我们遇到了这样一种情况:卸载到另一个页面,然后返回到第一个页面,而我们的脚本中没有任何内容需要加载。我理解这部分是由于dojo.require如何重新使用缓存页面,但我也不能回到缓存版本。除了将所有脚本粘贴到页面本身之外,还有没有其他方法可以强制Dojo重新加载任何require,而不管它是否已被缓存?

是否有理由不能以“正确”的方式执行此操作,将相关代码放入函数中,然后在需要时再次调用该函数


如果您仍然认为需要处理模块加载器,尽管在快速检查dojo.require源代码后,我认为有两种选择:

  • 尝试手动清除模块缓存

    delete d._loadedModules['my.module.name'];
    
  • 直接调用内部加载程序:

    var relpath = d._getModuleSymbols(moduleName).join("/") + '.js';
    d._loadPath(relpath, null);
    

  • (尝试这些方法的风险由您自己承担)

    强制以HTML格式重新加载

        <script type="text/javascript" src="path/to/my/module/name.js"></script>
        <script type="text/javascript">
          ...
          dojo.require("my.module.name");
          ...
        </script>
    
    
    ...
    require(“my.module.name”);
    ...
    

    我不知道这样做是否有任何问题,但它确实有效。

    我继续并在函数中重新实现了上述代码。谢谢。我有同样的问题,你的解决方案解决了。