JavaFX WebView / WebEngine 缓存外部 JavaScript

Ran*_*hak 5 java caching javafx webview browser-cache

情况:我有一个简单的 HTML 页面,它有一个像这样的普通脚本标签

<script src="main.js"></script>
Run Code Online (Sandbox Code Playgroud)

加载 html 后,我更新 main.js ,并重新加载(通过 UI 按钮)。

问题我的新 JS 没有被占用,我必须关闭应用程序并再次打开它。

我所做的尝试: - 不使用 webEngine.reload() ,而是 webEngine.load() - 每次重新加载时制作一个新的浏览器。- 使用新的浏览器创建一个新阶段 - 设置所有节点缓存关闭 - 在 HTML 以下代码中

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
Run Code Online (Sandbox Code Playgroud)

-InetAddressCachePolicy:

InetAddressCachePolicy.setNegativeIfNotSet(InetAddressCachePolicy.NEVER);
Run Code Online (Sandbox Code Playgroud)

-VM 选项:-Dnetworkaddress.cache.ttl=0。

问题 有没有办法删除缓存或强制 WebView 重新加载所有资源,而不是每次更新时在 JS 文件名后附加一个数字?

注意:我使用 NetBeans 7.3 和最新的 Java(更新 22)

Ran*_*hak 0

我是如何解决这个问题的:

  • 将包含 HTML 文件和所有 JS 文件的目标目录复制到随机生成的文件夹中。
  • 每次重新加载都会生成一个新文件夹,复制内容,删除旧文件夹,从新文件夹加载。

“mcdonasm”的答案是我尝试过的事情之一,如果“main.js”中只有 JavaScript ,它会起作用,但如果它引用其他 JS 文件(如我的情况),其他文件将被缓存。