Angular.io拦截器与服务工作者

前端之家收集整理的这篇文章主要介绍了Angular.io拦截器与服务工作者前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想更好地理解实现离线友好的webapps的选项,我在这里阅读这篇文章https://angular.io/guide/http也讨论了角度的拦截器.

现在我有点困惑:

一方面,我们有服务工作者(尚未完全支持浏览器),这将有助于实现脱机的第一/友好的应用程序,另一方面我们有这个强大的工具 – 拦截器 – 可以做很多事情来帮助应用程序更好地处理连接环境很差或没有.

那么这两个人之间有什么区别吗?什么时候使用,何时使用另一个?

解决方法

HttpClient拦截器和服务工作者是不同的层.

HttpClient拦截器仅处理在特定Angular应用程序中使用HttpClient提供程序执行的请求.

服务工作者处理在浏览器窗口中执行的所有请求,包括页面本身,资产和AJAX(XHR和Fetch)请求.

他们唯一常见的用途是对远程API的HttpClient请求.

由于API请求可以在Angular应用程序的不同位置处理,因此由开发人员决定哪一个是合适的.由于请求失败而导致的回退可能发生在服务工作者,HttpClient拦截器或使用HttpClient的服务中.

考虑到可以通过多种方式解决问题,并且浏览器支持很重要,服务工作者将不会是首选.如果单独使用HttpClient无法解决问题或解决方案不切实际,那么这对服务工作者来说就是一项工作.例如,当二进制文件更合适时,使用AJAX传输base64图像.

服务工作者不阻止主线程这一事实也是一个主要问题.

猜你在找的Angularjs相关文章