laravel을 사용하여 데이터베이스 (100mil ++ 데이터)에서 엄청난 양의 데이터를 가져 오지만 데이터로드가 너무 길어서 오류가 발생했습니다. 컨트롤러를 호출하여 Laravel보기의 데이터를 점진적으로 AJAX에 추가 한 다음 컨트롤러가 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]');
문제가 내가 아약스와 함께 새로운 해요 나의 방법은 당신이 설명하고있는 페이지 매김 패턴이 무한 스크롤라고 올바른 방법
색인을 사용하고 있지 않습니까? – Daan
ajax 요청 코드와 Ajax 요청이 전송 된 컨트롤러를 공유하십시오. –
이 목적으로 페이지 매김을 사용할 수 있다고 생각합니다. 다음은 샘플 코드입니다. https://gist.github.com/tobysteward/6163902 – jaysingkar