我在 Laravel 中使用 all() 方法获取数据并将其传递给视图,我在其中通过 ajax 更新页面数据而不刷新页面,所以问题是页面在处理像 300 - 1000 这样的小数据时工作正常/但是当记录不断增加,大约超过 3000 条,重新加载需要更多时间。 3000 个数据加载需要 4 分钟,
我尝试通过限制获取数据,但是当我使用 where() 子句和 get() 方法时/ajax 不起作用(不更新数据)。
你可以在控制器中尝试一下吗
public function getAjaxData(Request $request)
{
$pageSize = $request->input('pageSize', 10);
$data = YourModelName::paginate($pageSize);
return response()->json($data);
}
查看文件ajax是
dataSource: {
load: function(loadOptions) {
var deferred = $.Deferred();
$.ajax({
url: "{{ route('getAjaxData') }}",
dataType: "json",
data: {
pageSize: loadOptions.take,
page: (loadOptions.skip / loadOptions.take) + 1
},
success: function(response) {
var mappedData = response.data.map(function(item, index) {
return {
...item,
autoIncrementId: index + 1
};
});
deferred.resolve(mappedData, {
totalCount: response.total,
summary: response.summary
});
}
});
return deferred.promise();
}
},
remoteOperations: {
paging: true // Enable remote paging
},