ExtJs应用程序缓存警告

问题描述 投票:0回答:1

我有一个用ExtJs编写的单页应用程序。我没有使用应用程序缓存,但是当应用程序启动时,我在Chrome中看到以下警告:

[[弃用]应用缓存API的使用已弃用,并将在2020年4月左右在M82中删除。有关更多详细信息,请参见https://www.chromestatus.com/features/6192449487634432

这个问题已经在几年前的Sencha论坛(herehere)上多次发布。唯一的回应是来自非Sencha的海报,说“应该没问题”。不完全是您希望的答案。

有人知道如何消除此警告吗?考虑到我没有明确使用应用程序缓存,这听起来好像ExtJs可能在后台对其进行了处理。这就是我所关心的。

extjs html5-appcache
1个回答
0
投票
简短的答案是,除非您明确使用applicationCache,否则它实际上不会以任何方式影响您的应用程序。

详细信息:

即使您只是简单地尝试调用window.applicationCache属性,也会出现警告

applicationCache的用途是什么?它缓存静态文件(js和css)以使您的应用程序脱机工作。该技术已被ServiceWorker所取代。使用applicationCache进行缓存的工作方式如下(简短说明,full on MDN):

您创建了一个特殊组成的清单...

    并在页面的manifest标签的html属性中设置它的路径
  1. 此清单中的文件之后将被保存在applicationCache中
  • 在Sencha应用程序中,这是由于脚本https://docs.sencha.com/extjs/6.2.0/classic/src/Microloader.js.html注入您的页面。
  • 在此文件中,将基于applicationCache的内置包装和创建侦听器分配给applicationCache。这些侦听器的处理程序更改包装器内部的状态,然后调用notifyUpdateReady方法,该方法又调用全局appupdate事件。同时,所有这些代码都是抽象的,几乎对applicationCache的整体操作没有影响。

    如果有疑问,您可以模拟禁用applicationCache。在checkAllUpdates之前的if (_cache){...方法中设置调试器,并覆盖_cache(_cache = undefined;)。然后将控制权返回给浏览器。什么都不会发生。

    我使用SenchaFiddle示例对所有这些进行了测试。那里根本没有使用缓存。它没有清单

    我重复这个结论-如果您没有显式使用applicationCache-您无需担心。您可以通过查看页面代码并查找清单连接来检查是否使用了它。您也可以在控制台中执行以下代码

     window.applicationCache.status

    如果结果为0,则说明缓存未在您的应用程序中初始化

  • © www.soinside.com 2019 - 2024. All rights reserved.