我正在调用一个Web Service,它将大约3000条记录作为数据条目作为HTML响应返回&我正在尝试使用angularJS读取此响应。
下面是我用来调用服务的AngularJS代码
angular.module('tabApp', ['ngSanitize'])
  .controller('TabController', ['$scope', 'HttpService', function($scope, HttpService) {
        $scope.tab = 0;
        $scope.setTab = function(newTab){
              $scope.tab = newTab;
            $scope.loading = true;
            HttpService.CallService('Service.php?id='+newTab,newTab, function (data) {
                             $scope.myText = data;
                             $('.count').show();
                             $("[id^=searchg]").show();
                             $('.results').show();
            });
        };
        $scope.isSet = function(tabNum){
          return $scope.tab === tabNum;
        };
        $scope.setTab1 = function(newTab1){
            $scope.tab = newTab1;
            $('.loaderImage').hide();
      };
        $scope.isSet1 = function(tabNum){
            return $scope.tab === tabNum;
          };
}])
.service('HttpService', ['$rootScope', '$http', function ($rootScope, $http) {
        $rootScope.loading = true;
        return {
            CallService: function (url,tabnum, callback) {                   
                $http({
                method: "POST",
                url: url,
                data: {id: tabnum}})
                    .success(function (data, status) {                            
                        $('.loaderImage').hide();
                        callback(data, status);
                    }).error(function (data, status) {
                    $('.loaderImage').hide();
                        callback(status);
                    });                 
            } 
        }
    }]);我的问题是,如果返回的记录超过1500条,浏览器就会挂起。请建议我如何改进这一点。
更新:
我的html代码如下所示
<div ng-show="isSet(1)">
        <div id=matches  style="display:none"></div>
        <input type=text id=searchg placeholder="Type to search..." style="display:none" />
          <p class="preload" ng-bind-html="myText"></p>
            </div>发布于 2018-01-09 13:56:37
正如我们所看到的,这是您试图绑定的大量数据。在未来,它可能会更笨重。您应该使用服务器端分页,并且只获取记录的数量,即您的分页是什么。
这里是参考的JSFiddle链接。
http://jsfiddle.net/dwahlin/3Kewg/
希望这能有所帮助!为代码干杯!:)
发布于 2018-01-09 14:26:45
正如@Mohit Dixit建议的那样,您应该更喜欢进行服务器端分页,并且只请求活动的分页记录。
为此,我建议您使用智能表库。Here是同样的官方网站。它们同时支持分页(服务器端和客户端)、过滤和排序。
请注意,有许多库可用于此目的,但我建议这样做,因为我过去几年一直在使用它。
https://stackoverflow.com/questions/48161799
复制相似问题