如何在使用Internet Explorer时禁用服务工作者?

时间:2017-08-23 20:40:48

标签: angular internet-explorer service-worker html5-appcache

我正在创建一个实现AppCache和Service worker的Angular Web应用程序。我的应用程序启用了服务工作者,因此我的应用程序在除Internet Explorer之外的所有浏览器上都能正常运行。如果应用程序在IE上运行,我需要一种方法来禁用服务工作者。我正在研究应用程序检测它正在运行什么浏览器,并调用一些代码来禁用服务工作者或类似的东西。如果有人对此有任何经验,我将不胜感激。

1 个答案:

答案 0 :(得分:2)

检查浏览器与Service Worker兼容性的最常用方法是:

if ('ServiceWorker' in navigator) {
  // supported
} else {
  // not supported
}

大多数情况下,您不需要显式检查当前用户运行的浏览器,因为该测试会为您提供足够的信息。因此,在这种简单的情况下不要检查UA。

但应该注意的是,不同版本的Firefox和Chrome支持不同数量的Service Worker功能。这意味着即使测试通过,也可能尝试执行特定于SW的代码,导致浏览器抛出错误,因为API或者当前正在使用的浏览器版本中尚未实现。在这些情况下,需要仔细检查浏览器的功能。