• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >AngularJS > 详解AngularJS中$http缓存以及处理多个$http请求的方法

详解AngularJS中$http缓存以及处理多个$http请求的方法

作者:Darren Ji 字体:[增加 减小] 来源:互联网 时间:2017-05-30

本文主要包含详解AngularJS中$http缓存以及处理多个$http请求的方法等相关知识,Darren Ji 希望在学习及工作中可以帮助到您

$http 是 AngularJS 中的一个核心服务,用于读取远程服务器的数据。在AngularJS的实际项目中,经常需要处理多个$http请求,每个$http请求返回一个promise,我们可以把多个promise放到$q.all()方法接受的一个数组实参中去。

1.处理多个$http请求

angular.module('app',[])
.controller('AppCtrl', function AppCtrl(myService){
var app = this;
myService.getAll().then(function(info){
app.myInfo = info;
})
})
.service('myService', function MyService($http, $q){
var myService = this;
user = 'https://api...',
repos = '',
events = '';
myService.getData = function getData(){
return $http.get(user).then(function(userData){
return {
name:userData.data.name,
url:userData.data.url,
repoCount: userData.data.count
}
})
};
myService.getUserRepos = function getUserRepos(){
return $http.get(repos).then(function(response){
return _.map(response.data, function(item){
return {
name: item.name,
description:item.description,
starts: item.startCount
}
})
})
}
myService.getUserEvents = function getUserEvents(){
...
}
myService.getAll = function(){
var userPromise = myService.getData(),
userEventsPromise = myService.getUserRepos(),
userReposPromise = myService.getUserRepos();
return $q.all([userPromise, userEventsPromise, userReposPromise]).then(function(){
....
})
}
})
</div>

2.$http请求缓存

$http的get方法第二个形参接受一个对象,该对象的cache字段可以接受一个bool类型实现缓存,即{cache:true},也可以接受一个服务。

通过factory方式创建一个服务,并把该服务注入到controller中去。

angular.module('app',[])
.factory("myCache", function($cacheFactory){
return $cacheFactory("me");
})
.controller("AppCtrl", function($http, myCache){
var app = this;
app.load = function(){
$http.get("apiurl",{cache:myCache})
.success(function(data){
app.data = data;
})
}
app.clearCache = function(){
myCache.remove("apiurl");
}
})
</div>

小编总结:

● 实际上,实现缓存机制的是$cacheFactory
● 通过{cache:myCache}把缓存机制放在当前请求中
● $cacheFactory把请求api作为key,所以清楚缓存的时候,也是根据这个key来清除缓存

以上所述是小编给大家分享的AngularJS中$http缓存以及处理多个$http请求的方法,希望对大家有所帮助。

</div>

您可能想查找下面的文章:

相关文章

  • 2017-05-30AngularJS基础 ng-paste 指令简单示例
  • 2017-05-30AngularJS基础 ng-keyup 指令简单示例
  • 2017-05-30AngularJS过滤器filter用法总结
  • 2017-05-30举例详解AngularJS中ngShow和ngHide的使用方法
  • 2017-05-30基于AngularJS+HTML+Groovy实现登录功能
  • 2017-05-30Angularjs实现mvvm式的选项卡示例代码
  • 2017-05-30angularjs实现首页轮播图效果
  • 2017-05-30简介可以自动完成UI的AngularJS工具angular-smarty
  • 2017-05-30如何在Angular2中使用jQuery及其插件的方法
  • 2017-05-30简述AngularJS相关的一些编程思想

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • NodeJs——入门必看攻略
    • Angular实现购物车计算示例代码
    • 详解AngularJS中$filter过滤器使用(自定义过滤器)
    • AngularJS中如何使用echart插件示例详解
    • angular实现form验证实例代码
    • angularjs ocLazyLoad分步加载js文件实例
    • AngularJS表单验证中级篇(3)
    • Angular.JS通过指令操作DOM的方法
    • AngularJS基础 ng-init 指令简单示例
    • AngularJS的内置过滤器详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有