gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 08:09:03 25 4
gpt4 key购买 nike

我有一个包含 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com