los*_*ket 8 asynchronous angularjs
我有一个服务,我从服务器拉数据.当我单击按钮通过此服务向服务器发送请求时,窗口会冻结,直到我收到服务器的响应.有什么办法可以让这个请求异步吗?
这是我的服务.
app.factory('service', function($http) {
return {
getLogData : function(startTime,endTime){
return $http({
url: baseURL + 'getLogData',
method: 'GET',
async: true,
cache: false,
headers: {'Accept': 'application/json', 'Pragma': 'no-cache'},
params: {'startTime': startTime , 'endTime': endTime}
});
}
};
)};
Run Code Online (Sandbox Code Playgroud)
HTML.
<button ng-click="getData()">Refresh</button>
<img src="pending.gif" ng-show="dataPending" />
Run Code Online (Sandbox Code Playgroud)
码
$scope.getData = function(){
service.getLogData().success(function(data){
//process data
}).error(function(e){
//show error message
});
}
Run Code Online (Sandbox Code Playgroud)
Nat*_*son 13
虽然有一些关于你的方法的优点和缺点的争论,我认为问题在这里得到解答:AJAX调用冻结浏览器一段时间它得到响应并执行成功
为了测试这实际上是否是问题的一部分,假设一个响应并静态地提供它.我使用Fiddler或WireShark来获取响应,然后保存到像testService.json这样的文件中.XHR及其所有各种衍生产品(如$ HTTP $ .ajax)将其视为服务,尽管标头可能略有不同.