使用AngularJS优化ajax调用

时间:2015-02-10 21:53:34

标签: angularjs angular-services angularjs-http

我正在创建类似example的内容,但对于搜索建议,请使用以下代码:

  $scope.$watch('terms', function(newValue, oldValue) {
      if (angular.equals(newValue, oldValue)) {
          return;
      }

      getResults(); //$http.get...
  });

如果我写得快,它会产生大量的ajax调用到我的服务器。但在示例中,您可以看到效果非常好,服务器不会对每次通话做出响应(我认为发生了什么)。

那么,做到这一点并防止滥用的最佳方法是在服务器端做些什么?

1 个答案:

答案 0 :(得分:1)

如果您使用Angular> v1.3只使用ngModelOptions去抖动。

https://docs.angularjs.org/api/ng/directive/ngModelOptions

<input type="text" name="userName"
       ng-model="user.name"
       ng-model-options="{ debounce: 1000 }" />

所以更新会等待,例如1000ms直到触发更新。 应该是解决问题的好方法。