Laravel 中的 Ajax 页面加载问题

问题描述 投票:0回答:1

我在 Laravel 中使用 all() 方法获取数据并将其传递给视图,我在其中通过 ajax 更新页面数据而不刷新页面,所以问题是页面在处理像 300 - 1000 这样的小数据时工作正常/但是当记录不断增加,大约超过 3000 条,重新加载需要更多时间。 3000 个数据加载需要 4 分钟,

我尝试通过限制获取数据,但是当我使用 where() 子句和 get() 方法时/ajax 不起作用(不更新数据)。

php ajax laravel
1个回答
0
投票

你可以在控制器中尝试一下吗

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
        },
© www.soinside.com 2019 - 2024. All rights reserved.