javascript - Cocoa - 防止在 WebKit 中缓存 Javascript - Safari Beta 4 错误?

标签 javascript html cocoa caching webkit

我有一个包含 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 文件的当前更改。看起来 javascript 文件 (data.js) 实际上被缓存了,不管 URL 的缓存策略如何。

作为解决方法,我尝试在 loadRequest 之后调用 [[myWebView mainFrame] reload],但这会导致其他问题。 ( WebView 根本没有更新。)

谁能提出解决或解决此问题的方法?谢谢。

最佳答案

不是解决方案,而是可能有效的解决方法:

尝试在您的 URL 中附加类似“?version=some_random_number”的内容,每次重新加载时使用不同的随机数。根据我的经验,这在强制 webkit 重新加载方面非常有效。

关于javascript - Cocoa - 防止在 WebKit 中缓存 Javascript - Safari Beta 4 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/900415/

相关文章:

javascript - 快速路由socket.io发出客户端未捕获的数据

javascript - JavaScript uploader 可以更改文件的二进制代码吗?

html - 在电子邮件中垂直旋转文本

javascript - 单击 map 外部时传单缩放 map

python - 在 Python 中使用 BeautifulSoup 从 HTML 文本中的嵌套元素中获取文本

cocoa-touch - 为什么 NSAssert1 等而不是 NSAssert?

javascript - onmousemove 事件不起作用

javascript - 有效的查询参数 - 在 URL 中传递数据

objective-c - 在 Cocoa 应用程序上调用 CFRunLoop 系列

objective-c - 指点一下,我使用得正确吗? Objective-c/ cocoa