我有一个包含 WebView 的 Cocoa 应用程序。由于应用程序已安装客户群,我的目标是 10.4 SDK。(即我不能要求 Leopard。)
我有两个文件:index.html 和 data.js。
在运行时,为了响应用户输入,我通常会覆盖 data.js 文件,并使用来自应用程序的当前数据填充它。
(index.html 文件在正文加载时使用 data.js 文件来填充 index.html 中的表。index.html 本身不会被修改。)
为了(据说)防止 WebKit 缓存我经常变化的数据,我调用:
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:indexFileURL cachePolicy: NSURLRequestReloadIgnoringCacheData timeoutInterval:10];
和
[[myWebView mainFrame] loadRequest: urlRequest];
这在 Tiger 和 Leopard 中效果很好。
但是,如果安装了 Safari Beta 4,它会在 Leopard 中失败。在 webview 中绘制 index.html 文件不考虑当前对 data.js 文件的更改。无论 URL 的缓存策略如何,似乎实际上都在缓存 javascript 文件 (data.js)。
作为一种解决方法,我尝试在 loadRequest 之后调用 [[myWebView mainFrame] reload],但这会导致其他问题。(网络视图根本没有更新。)
任何人都可以提出解决或解决此行为的方法吗?谢谢。