如果可能的话,我应该使用 angularjs $http服务来处理请求还是 jquery ajax
Should I use angularjs $http service for requests or jquery ajax if possible?
在我的项目中,我使用 angularjs 框架,并且喜欢在进行 ajax 调用时使用 $http
服务。但是在项目的某些部分,ajax 调用不会直接更新 UI 并且不需要 angularjs 绑定,我应该使用$http
服务还是普通jquery.ajax
?
更具体地说,我应该最小化项目中不涉及 UI 的 angularjs 依赖项,还是用 angular 服务和指令紧密包裹整个项目?
如果您使用的是 Angularjs,那么您应该使用 $http 作为进行 ajax 调用的首选方法。该服务不必绑定到 ui 或影响 ui。
仅当您无法使用角度服务执行操作时,才应使用 Jquery Ajax 调用,如果您遵循 angularjs 最佳实践,这种情况很少见。
此外,如果您使用 http 服务,则可以使用拦截器来创建请求并处理响应,然后再将它们提供给调用的成功部分。这些用于处理全局错误并显示全局通知,可以说,可以在任何响应中出现。此外,您可以在此处的每个请求之前添加标头和更多信息。您也可以在此处对请求/响应进行编码/解码,以便所有这些实用程序功能都在同一位置完成。查看以下链接:带有拦截器的 HTTP 服务文档
如果你仍然需要从外部角度环境调用$http,你应该尽量避免,做一个角度的通用实用程序函数,并将其包装在某个可以直接调用的函数中。
我个人建议将其与封装http请求的公共服务层保持一致。虽然你可以混合它,但我只建议在处理已经用jquery编写的代码时才这样做。此外,如果您最终想要稍后更改它以更新 UI,则必须返回并更改 jquery 调用。
Blaise已经提出的另一点是,如果你正在做单元测试并想模拟响应,$http真的很闪耀。下面是一个示例:http://www.unit-testing.net/CurrentArticle/How-to-mock-http-calls-in-Angular.html
如果 Ajax 请求不与 UI 交互,这并不重要。$http类似于 Ajax 请求,最大的区别是$http注册到使用新数据更新 UI 的摘要周期。如果不需要UI更新,您可以使用任何让您满意的东西。
Angular 基础设施。对于 jQuery 开发人员来说,对 Angular 有很好的介绍http://www.ng-newsletter.com/posts/angular-for-the-jquery-developer.html
有关于$http与$.ajax之间区别的讨论Angularjs $http VS jquery $.ajax从jquery $.ajax到Angular $http
过度使用 jQuery 和 Angular 可能会导致一些问题,例如https://github.com/angular/angular.js/issues/2548(jQuery导致ngClick与触摸设备的错误工作)
- 在同一个服务工作者中处理service-worker.js有任何影响吗
- fetch事件处理程序中的fetch()未触发服务工作程序中的fetch事件
- 如何处理AngularJS服务中的回调
- 蒙戈会处理我的服务吗?
- 如何处理对后端服务进行相同调用的多个浏览器脚本
- JavaScript 中事件处理和计时器服务的优先级是什么?
- 如何在Orchard CMS中处理来自JS的跨域Web服务调用
- 茉莉花和角度模拟 :模拟处理本地存储的服务
- 如果可能的话,我应该使用 angularjs $http服务来处理请求还是 jquery ajax
- 处理jQuery AJAX Web服务调用的http错误的问题
- 处理服务和控制器之间AngularJS Promises的推荐方法
- ExtJS RESTful服务无法处理json数据
- 使用AngularJS服务和视图处理页面刷新
- $http服务未触发控制器angularjs中的成功处理程序
- 使用多维数组javascript处理web服务响应
- 错误:单元测试AngularJs服务时,没有待处理的flush请求
- 如何处理AngularJS中的工厂服务错误
- javascript将从服务接收到的日期作为UTC格式处理
- 如何将错误处理与控制器和服务集成
- 如何处理服务请求中的值