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

时间:2011-10-10 21:07:17

标签: javascript dojo

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

2 个答案:

答案 0 :(得分:3)

强制它以HTML格式重新加载。

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

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

答案 1 :(得分:2)

有没有理由不能通过将相关代码放在函数中然后只是在需要时再次调用所述函数而以“正确”的方式执行此操作?


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

  1. 尝试手动清除模块缓存

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

    var relpath = d._getModuleSymbols(moduleName).join("/") + '.js';
    d._loadPath(relpath, null);
    
  3. (请自行承担风险)