如何在 Mac 上清除 Excel 2016 任务窗格加载项的客户端浏览器缓存



这是上一个问题的后续问题,其中"如何确保我在任务窗格加载项中看到最新的 JS 代码"的答案涉及通过服务器添加的元/无缓存标记(或对服务器资源进行版本控制)来控制客户端缓存行为。

但是,我正在寻找一种手动方法,在客户端,最终用户清除似乎正在存储 JavaScript 文件的客户端缓存,并阻止任务窗格加载项使用服务器上更新的 JS 文件。 在开发过程中,我将经常更新服务器上的JS资源,并且我正在寻找允许使用这些更新文件的客户端解决方案。

环境:在 Mac 上运行的 Excel 2016 桌面版本 (OSX 10.11.5)使用 Excel/Office.js v1.2 的任务窗格外接程序。

方案:将加载项项目部署到 Web 服务器,在 Mac 上运行加载项。 然后在 foo 中更新代码.js在加载项中,重新部署到 Web 服务器。运行加载项并查看 foo.js 中的旧(更新前)行为。

我尝试过的

  1. 在同一台 Mac 上,直接从 Safari 中的网络应用程序加载 foo.js。 我可以看到我希望在更新版本中出现的 js 代码中的更改。

  2. 清除了 Safari 缓存(隐私>删除所有网站数据)(我怀疑这在 #1 的基础上不起作用 - Safari 似乎没有与 Excel 共享缓存,但值得一试) - 没有改变任何东西。

  3. 在~/Library/Containers/com.microsoft.Excel下四处寻找尝试查找缓存 - 已删除 ~/Library/Containers/com.microsoft.Excel/Data/Library/Caches/com.microsoft.Excel - 没有帮助。

  4. 使用了任务窗格上下文菜单中的"重新加载"菜单项(外观就像 Mac 上的 [i] 一样) - 没有区别:仍然看到旧的 foo.js。

Excel (桌面) 2016 任务窗格加载项引用的 JavaScript 文件存储在哪里?(在 Mac 上)最终用户如何删除它们?

我偶然发现了com。Microsoft.OsfWebHost,同时使用Mac终端的"defaults"命令四处闲逛。 一些谷歌搜索出现了这篇文章,基本上提供了答案。 稍微改进一下那里的指示,这就是我所做的:

  1. 确保我已退出 Excel
  2. 在"访达"中,导航到~/Library/Containers/com.Microsoft.OsfWebHost/Data/Library/Caches
  3. 重命名(或删除)名为"com.Microsoft.OsfWebHost"那里
  4. 在Excel中打开了我的工作簿(它已经插入了加载项)
  5. 似乎没有加载任何内容,所以我使用了任务窗格上下文菜单中的"重新加载"命令

现在我可以看到我的 java 脚本文件的更新版本已经加载。

这仅基于经验证据,没有来自Microsoft或 Apple 文档的证实,因此您的里程可能会有所不同。

顺便说一句,com有一些有趣的"默认"属性。Microsoft.OsfWebHost:

defaults read com.Microsoft.OsfWebHost
{
WebKitCacheModelPreferenceKey = 1;
WebKitDebugFullPageZoomPreferenceKey = 1;
WebKitPluginsEnabled = 0;
WebKitUsesPageCachePreferenceKey = 0;
}

谷歌搜索WebKitCacheModelPreferenceKey没有找到任何官方文档,但似乎有人建议将其设置为0可能会抑制缓存。

最新更新