laravelを使用してデータベース(100mil ++データ)から大量のデータを取得していますが、データのロードが長すぎるため、私はAJAXを使用してコントローラを呼び出すことで徐々にLaravelビューにデータを追加し、コントローラはLIMITでクエリを使用してデータを取得するため、制限されたデータに従ってビューが徐々に表示されるため、タイムアウトは発生しませんAJAX-LARAVELを使用してデータベースから大量のデータを徐々に表示
コントローラ:
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','[email protected]');
問題は、私はAjaxで新たなんだと、私の方法は、正しい方法
インデックスを使用していませんか? – Daan
ajaxリクエストコードと、ajaxリクエストが送信されたコントローラを共有してください。 –
私はこの目的のためにページネーションを使うことができると思います。ここにサンプルコードがあります。https://gist.github.com/tobysteward/6163902 – jaysingkar