【发布时间】:2012-01-12 10:50:08
【问题描述】:
我有一个加载 html、css 和 javascript 的 UIWebView。
每当我对 html 或 css 进行更改时,我都会重新打开 WebView。但是我的 JavaScript 似乎被缓存了,当重新打开 WebView 时,它们中的更改不会变得可见。
我在这里错过了什么?
【问题讨论】:
标签: javascript ios caching uiwebview
我有一个加载 html、css 和 javascript 的 UIWebView。
每当我对 html 或 css 进行更改时,我都会重新打开 WebView。但是我的 JavaScript 似乎被缓存了,当重新打开 WebView 时,它们中的更改不会变得可见。
我在这里错过了什么?
【问题讨论】:
标签: javascript ios caching uiwebview
这个答案帮助了我: Prevent caching of .css files in UIWebView loaded from disk
基本上,您只需将增量器作为参数添加到链接中,例如?version=1 或?time=12345678。例如:<script src="myscript.js?version=123></script>
对于我正在使用的动态加载的 javascript:
script.src = "myscript.js?version="+new Date().getTime();
并且脚本被正确更新,没有版本参数文件被缓存在 UIWebView 中。
【讨论】:
<script src="js/my_javascript.js?version=2" type="text/javascript"></script>
我也怀疑 UIWebView 缓存。最初。但实际问题是 Xcode 将 .js 文件视为可编译源 - Xcode 将它们置于“编译源”构建阶段(项目目标 -> 构建阶段选项卡),而它们应该处于“复制捆绑资源”阶段。无论编译器如何看待 .js 文件,它都不会检测到更改并在更改时替换它。 将我的 .js 文件从编译阶段移动到复制资源阶段很好地解决了这个问题。
【讨论】: