【问题标题】:Office-js addin with Excel and Edge Webview - how to delete cache?带有 Excel 和 Edge Webview 的 Office-js 插件 - 如何删除缓存?
【发布时间】:2020-06-05 14:55:58
【问题描述】:

我们正在为 Excel 开发一个 office-js javascript 插件。我们正在 Windows 上的 Excel 中测试带有旁加载功能的插件。将 Windows 和 Excel 更新到新版本后,Office/Excel 中的 webview 已从 IE 更改为 Edge。现在我们需要删除 Edge 浏览器缓存,以便查看更新后的 Web 服务的变化。

要完全重新加载侧载的 office 插件,删除本地存储和 IE 浏览器缓存就足够了。 更新到 Edge webview 后,我们无法清除浏览器缓存。

在 IE 中,我们可以这样刷新本地存储和浏览器缓存: del /q /s /f C:\Users\username\AppData\Local\Microsoft\Windows\Caches del /q /s /f C:\Users\ username\AppData\Local\Microsoft\Windows\INetCache del /q /s /f C:\Users\ username\AppData\Local\Microsoft\Office\16.0\WEF

psexec.exe -l c:\windows\system32\RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 4359

我们也可以通过 Internet 选项对话框删除 IE 缓存,而不是 psexec (sysinternals)。

为了删除 Edge 缓存,我们尝试了 del /q /s /f C:\Users\username\AppData\Local\Packages\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\AC 或者通过打开 Edge 浏览器端通过 UI 删除缓存。

不幸的是,Edge 缓存似乎没有完全删除,office 插件没有完全显示来自 Web 服务的更改内容。

【问题讨论】:

    标签: webview office-js microsoft-edge


    【解决方案1】:

    首先 - 手动删除不是一个好习惯 - 正如@Rick Kirkham 所说,使用标准网络技术进行适当的缓存。 如果您想以艰难的方式进行 - 列出 Edge WebViewHost 的缓存文件,如下所示:

    dir /s %LOCALAPPDATA%\Packages\Microsoft.Win32WebViewHost_cw5n1h2txyewy\AC\#!123\INetCache\
    

    此系统目录不可见。 清空我使用的内容:

    del /s /f /q %LOCALAPPDATA%\Packages\Microsoft.Win32WebViewHost_cw5n1h2txyewy\AC\#!123\INetCache\
    

    在我们的例子中,我们使用 Azure App Service (IIS) 作为后端服务器。 我们添加了以下 web.config 设置,让客户端重新验证所有缓存的文件:

    ...
      <system.webServer>
        <staticContent>
          <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="0.00:00:00" cacheControlCustom="must-revalidate" />
        </staticContent>
    ...
    

    【讨论】:

    • 尝试了互联网上的所有其他东西,第二个命令就成功了。塔
    【解决方案2】:

    在开发时,最好关闭客户端缓存。详细信息将取决于您使用的服务器类型。在大多数情况下,它涉及向 HTTP 响应添加某些标头。我过去使用过以下模式,但您应该研究其中的每一个并了解它们的影响。

    Cache-Control: "private, no-cache, no-store"
    Pragma: "no-cache"
    Expires: "-1"
    

    另外,请参阅这个 SO 问题:What is the proper way to tell the browser not to cache

    【讨论】:

    • 非常感谢!我们还必须考虑当 Web 服务更新并且清单文件保持不变时,客户计算机上会发生什么。我们现在从服务器读取一个版本号,我们将其与客户端存储的版本进行比较。如果有差异,我们会为每个请求的 URL 添加一个随机变量,这会打开一个新的缓存。
    【解决方案3】:

    如果您在 Visual Studio 中进行开发,似乎真正的问题不在于浏览器缓存,而在于 VS 决定将哪些文件部署到本地 IIS Express 服务器、用于本地测试/开发或远程用于发布的 Web 服务器。在许多情况下,即使您还修改了 web.config 文件,修改后的 html 和/或 js 文件也不会进入 Web 部署。

    我始终如一地完成这项工作的方式是我选择了 Web 应用程序项目(在解决方案资源管理器中),打开属性,单击“打包/发布 Web”选项卡,然后在“要部署的项目”下选择“此中的所有文件项目”。

    对我来说很好用!

    【讨论】:

      【解决方案4】:

      尝试参考以下步骤删除 Microsoft Edge 浏览器数据:

      1. 在 Microsoft Edge 中,转到更多...> 设置
      2. 点击隐私和安全,选择选择要清除的内容
      3. 选中您要清除的每种数据类型旁边的复选框,然后选择清除。
      4. 如果您愿意,请将关闭浏览器时始终清除此项设置为开启。

      截图如下:

      另外,当您使用F12开发者工具调试网站时,您也可以使用开发者存储工具查看存储的数据并删除。更多详情请查看this article

      【讨论】:

      • 非常感谢!我们正是以这种方式进行了尝试。使用 Edge 浏览器本身,这是有效的,但使用 Excel Edge webview 和 office-js,缓存中仍然有一些内容。现在我发现了新的 Microsoft Edge DevTools Preview,它在 Excel 中运行 office-js 插件时为我提供了 F12 开发工具。
      猜你喜欢
      • 1970-01-01
      • 2020-02-19
      • 1970-01-01
      • 1970-01-01
      • 2019-01-27
      • 1970-01-01
      • 2014-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多