【问题标题】:Can I clear a webapp in Chrome?我可以在 Chrome 中清除网络应用吗?
【发布时间】:2011-02-23 21:39:16
【问题描述】:

我编写了一个 web 应用程序,它有一个清单,其中包括它需要的所有 javascript 和图像。不幸的是,即使我更改了清单文件,它似乎也没有重新加载 javascript。

有没有办法从 Chrome 中完全删除 web 应用程序?清除浏览器缓存似乎不起作用。

我在 Mac 上运行 Chrome 5.0.375.55。

非常感谢您的任何帮助。

【问题讨论】:

    标签: web-applications google-chrome manifest


    【解决方案1】:

    添加像?foo=12345 这样的get 参数会将您的文件视为不同的文件,因此会重新缓存它,但不会清除现有文件的任何缓存。

    类型:

    chrome://appcache-internals/
    

    你会得到幸运的:)

    【讨论】:

    • 如果这个答案解决了您的问题,您应该将其标记为已接受(答案投票正下方的复选标记)
    • 这行得通,但为什么有必要呢?遵循制作离线应用程序的所有准则,但仅 chrome 似乎忽略了清单更新。
    【解决方案2】:

    它是否也在缓存服务器端?尝试将 ?foo=12345 之类的 get 参数添加到 url 中,看看是否获得了更新的文件。

    【讨论】:

      【解决方案3】:

      Apple 在这方面有一些非常好的文档,开始有点棘手,但它确实使整个清单过程更加透明。此外,我发现 Safari(尤其是 Mobile Safari)比 Firefox 更一致地显示这些事件响应;不确定 Chrome 虽然它应该非常接近 Safari。

      你的问题的根源:

      1. 清空清单或在清单中添加/删除文件
      2. 加载应用程序
      3. 重新添加清单
      4. 重新加载应用程序。这是一种肮脏的方式,但我建议您花时间阅读并实现 JS,这样您就可以确定清单正在更新。

      Google 有一篇很好的帖子 here

      基本上,您可以使用window.applicationCache.status 构建一系列if else 测试,以便清楚地了解系统在做什么。

      来自苹果:

      例如,你得到 DOMApplicationCache 对象如下:

      cache = window.applicationCache;
      

      您可以通过如下方式检查应用缓存的状态:

      if (window.applicationCache.status == window.applicationCache.UPDATEREADY)...
      

      如果应用程序缓存处于 UPDATEREADY 状态,那么您可以通过向其发送 update() 消息来更新它,如下所示:

      window.applicationCache.update();
      

      如果更新成功,按如下方式交换新旧缓存:

      window.applicationCache.swapCache();
      

      【讨论】:

        【解决方案4】:

        没有(据我所知)

        似乎人们希望提问者接受一个答案,但实际上没有人回答这个问题。我不是专家,但我一直在搜索,我认为“否”是正确的,并回答了提出的问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-09-07
          • 1970-01-01
          • 1970-01-01
          • 2013-10-25
          • 1970-01-01
          • 1970-01-01
          • 2017-10-29
          • 2020-11-25
          相关资源
          最近更新 更多