에서에서 setInterval AJAX 작업을 수행하는 방법, 내가 AJAX를하고 setInterval
으로 페이지를 업데이트 다음과 같이 할 수 있습니다정상 PHP에서 Laravel 5.4
script.js
setInterval(function(){
$.get("fetch_json.php", function(data) {
var jsonData = JSON.parse(data);
$.each(jsonData, function(itemKey,itemObject){
// update div without refreshing the page
}
},1000);
fetch_json.php
$results_array = [];
$file = new SplFileObject("file.csv");
$file->setFlags(SplFileObject::READ_CSV);
foreach ($file as $row) {
$results_array[] = $row[0];
$results_array[] = $row[1];
$results_array[] = $row[2];
$results_array[] = $row[3];
}
echo json_encode($results_array);
Laravel 5.4에서는이 작업을 더 이상 수행하지 않습니다. 컨트롤러와 뷰를 사용하면 데이터 전달이 복잡해 보입니다. 나는 내 컨트롤러에서 다음을 수행 해봤
:
$(document).ready(function(){
setInterval(function(){
$.ajax({
url: "/fetch-data",
success: function(response) {
// update div
}
});
},1000);
});
경로
Route::get('/fetch-data', '[email protected]');
내가 생각
class PageController extends Controller
{
public function fetchData()
{
$results_array = [];
$file = new \SplFileObject("file.csv");
$file->setFlags(\SplFileObject::READ_CSV);
foreach ($file as $row) {
$results_array[] = $row[0];
$results_array[] = $row[1];
$results_array[] = $row[2];
$results_array[] = $row[3];
}
$json = json_encode($results_array);
return view('page',['json'=>$json]);
}
}
script.js 그 $.ajax
에서 url: "/fetch-data"
를 호출하는 것입니다 응답으로 json 데이터를 침을 뱉어 라. 그 대신 나에게 w를 보여준다. hole html 페이지는 내가 원하는 바가 아니다.
단순한 라우팅과 데이터를 다시보기로 전달하는 경우 해당 항목을 잘 보냅니다. 페이지를 새로 고치지 않고 내용을 업데이트하기 위해 매 2 초마다보기를 업데이트하는 것은 매우 복잡해 보입니다.
Laravel 5.4에서이 기능을 구현하는 방법에 대한 아이디어가 있으면 크게 감사하겠습니다.
할) -> JSON (배열 ('JSON '=> $ results_array []) – Surace