gpt4 book ai didi

php - 使用 AJAX 逐渐显示数据库中的大量数据 - LARAVEL

转载 作者:行者123 更新时间:2023-11-29 11:20:53 25 4
gpt4 key购买 nike

我正在使用 Laravel 从数据库中获取大量数据(100mil++ 数据),但它给了我一个错误,即超时,因为加载数据太长,并且我想使用 AJAX 将数据追加到 Laravel 中通过调用 Controller 逐步 View ,然后 Controller 使用带有LIMIT的查询来获取数据,因此 View 会按照有限的数据逐渐显示数据,因此不会超时

Controller :

public function index(){
return view('users.index',compact('users'));
}

public function loadAjax(){
// print_r('expression');
$counter = Input::get('counter');
$users = User::take(1)->skip($counter)->get();
return json_encode($users);
}

jquery 和 AJAX:

<script>
var ctr = 0;
window.onload = function () {
getData();
};

window.setInterval(function () {
ctr++; //increase the data offset
getData();
}, 1000);

function getData() {
jQuery(document).ready(function() {
jQuery.ajax({
url: "users/ajax",
type: 'GET',
data: {counter : ctr},
dataType: "json",
success: function(data) {
console.log(data.users);
for(var i =0; i < data.users.length; i++) {
var htm = '';
htm += '<tr id="inside">'
htm += '<td>'+data.users[i].id+'</td>';
htm += '<td>'+data.users[i].name+'</td>';
htm += '<td>'+data.users[i].email+'</td>';
htm += '</tr>'
$("#inside").append(htm);
}
},
error: function(data) {
}
});
});
}
</script>

路线:

Route::get('users/ajax','UserController@loadAjax');

问题是我是 ajax 和 idk 新手,如果我的方法是正确的

最佳答案

您描述的分页模式称为“无限滚动”。前 x 条记录将加载到页面上,随后的 AJAX 调用会请求更多数据并将其添加到 View 中的列表中。这是Laracast有关实现无限滚动的更多信息。当滚动到达底部时,onScroll 事件会触发无限滚动请求。或者,可以使用按钮来触发下一个请求。

请记住,由于客户端内存限制,您将无法在浏览器中显示所有记录。一般来说,数以百万计的对象在 DOM 中效果不佳。因此,大型数据集不太适合无限滚动。我强烈推荐普通的旧分页。

一个开箱即用的 AJAX 分页工具包,可以很好地处理大型数据集是 jQuery Datatables 。祝你好运。

关于php - 使用 AJAX 逐渐显示数据库中的大量数据 - LARAVEL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38953707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com