使用Angular.js
数据库有大约8000个结果。根据互联网连接,表格需要大约3-10秒才能加载。
加载所有结果。有没有办法限制说1000个结果,但搜索功能加载所有?或者角度是否有服务器端加载?
app.js非常默认:
var app = angular.module('myApp', ['ui.bootstrap']);
app.filter('startFrom', function() {
return function(input, start) {
if(input) {
start = +start; //parse to int
return input.slice(start);
}
return [];
}
});
app.controller('customersCrtl', function ($scope, $http, $timeout) {
$http.get('submit/getJobs.php').success(function(data){
$scope.list = data;
$scope.currentPage = 1; //current page
$scope.entryLimit = 100; //max no of items to display in a page
$scope.filteredItems = $scope.list.length; //Initially for no filter
$scope.totalItems = $scope.list.length;
});
$scope.setPage = function(pageNo) {
$scope.currentPage = pageNo;
};
$scope.filter = function() {
$timeout(function() {
$scope.filteredItems = $scope.filtered.length;
}, 10);
};
$scope.sort_by = function(predicate) {
$scope.predicate = predicate;
$scope.reverse = !$scope.reverse;
};
});
表格行是:
<tr ng-repeat="data in filtered = (list | filter:search | orderBy : predicate :reverse) | startFrom:(currentPage-1)*entryLimit | limitTo:entryLimit">
请原谅我的无知。如果您需要更多代码或其他内容,请告知我们。
答案 0 :(得分:0)
Angular在服务器端没有分页。您应该在服务器中限制返回的结果,尝试这样的事情:
$http.get('submit/getJobs.php?currentPage=1&pageSize=100').success(function(data){
$scope.list = data;
$scope.currentPage = 1; //current page
$scope.entryLimit = 100; //max no of items to display in a page
$scope.filteredItems = $scope.list.length; //Initially for no filter
$scope.totalItems = $scope.list.length;
});
之后,您不断向服务器询问更多结果,增加currentPage查询字符串。