2017-08-23 45 views
1

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

回答

1

最常见的方式来检查浏览器与服务人员的兼容性是这样的:

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

大多数时候,你并不需要显式地检查当前用户运行的浏览器,因为该测试给你的时间足够的信息。所以不要在这个简单的情况下检查UA。

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

+0

只是为了补充一点。如果支持服务人员,则使用服务工作者缓存,即使使用了appcache也是如此。这意味着服务人员是一个渐进式增强,appCache将在IE中按预期工作。作为补充说明,你不应该再为IE构建东西。 Windows 7支持窗口现已通过。 IE只存在于尚未更新的传统企业应用程序:) –

相关问题