Angular.io拦截器与服务工作者
我想更好地理解实现离线友好的webapps的选项,我在这里阅读这篇文章:
https://angular.io/guide/http也讨论了角度的拦截器.
现在我有点困惑: 一方面,我们有服务工作者(尚未完全支持浏览器),这将有助于实现脱机的第一/友好的应用程序,另一方面我们有这个强大的工具 – 拦截器 – 可以做很多事情来帮助应用程序更好地处理连接环境很差或没有. 那么这两个人之间有什么区别吗?什么时候使用,何时使用另一个? 解决方法
HttpClient拦截器和服务工作者是不同的层.
HttpClient拦截器仅处理在特定Angular应用程序中使用HttpClient提供程序执行的请求. 服务工作者处理在浏览器窗口中执行的所有请求,包括页面本身,资产和AJAX(XHR和Fetch)请求. 他们唯一常见的用途是对远程API的HttpClient请求. 由于API请求可以在Angular应用程序的不同位置处理,因此由开发人员决定哪一个是合适的.由于请求失败而导致的回退可能发生在服务工作者,HttpClient拦截器或使用HttpClient的服务中. 考虑到可以通过多种方式解决问题,并且浏览器支持很重要,服务工作者将不会是首选.如果单独使用HttpClient无法解决问题或解决方案不切实际,那么这对服务工作者来说就是一项工作.例如,当二进制文件更合适时,使用AJAX传输base64图像. 服务工作者不阻止主线程这一事实也是一个主要问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |