【发布时间】:2011-04-25 23:17:14
【问题描述】:
我有一个页面 javascript page.js 正在加载 require.js。 page.js的调用放在了require.js调用之后的页面底部,如下:
<script>
require(["page"]);
</script>
page.js 中的函数不会在每次访问页面时都执行。
要清楚,警报('hello');在 page.js 的中间会被提醒最多但不是所有的时间。我很确定这不是现有的 IE 问题,并且只要没有其他 JS 错误,就会始终执行简单的警报。
95% 的时间页面及其对应的函数执行,大约 5% 的时间 IE 浏览器不会重新执行 page.js 的内容。
我不认为这是一个固有的 IE 问题,而是 require.js 在 IE 中发现了相关的激进缓存问题。
编辑: 澄清一下,当错误发生时,page.js 文件在 f12 dom 加载中可见。该页面已正确缓存。问题是缓存的代码文件没有重新运行!
比如这个文件中的alert没有被执行!
我不确定 require.js 的内部结构,但我想他们会为资源执行 xhr 并对其进行评估。似乎 xhr 已完成并加载到 dom 中,但 eval 无法正常工作。 (这当然是猜测,因为我对 require.js 的内部了解不够多)。
【问题讨论】:
-
问题是....? :p
-
问题是我如何不让 IE7 和 IE8 使用 require.js 进行不受欢迎的缓存
-
您是否尝试过将代码放入名为“init”的函数中,然后在 require 语句之后调用它的解决方法?不知道您的应用程序做了什么,不确定这对于您的应用程序是否可行且可维护。我使用的 dojo 提供了自己的 require 功能,但我没有注意到您遇到的问题。
标签: javascript internet-explorer caching internet-explorer-8 require