我有一个有4列的mySQL表。其中之一是来自时间戳()的updated_at()。有人知道如何检测updated_at列何时更改并使用 ajax 更新某个页面?
我知道更好的方法是使用 Web 套接字,但对于我的项目来说有点矫枉过正。该项目在 laravel 5.2 上
您可以使用模型事件
检测模型何时更新但是我不知道如何在没有 Web 套接字的情况下从您的 PHP 脚本刷新 html 页面。
编辑
尝试
Route::get('checkIfModelUpdated/{id}', function($id) {
$model = YourModelClass::find($id);
$updatedAt = Request::get('updated_at');
return json_encode($model->updated_at->gt($updetedAt));
});
和客户端代码
setInterval(function() {
$.get('/checkIfModelUpdated/'+YOUR_MODEL_ID,
{updated_at: LAST_UPDATED_AT},
function(data) {
if (JSON.parse(data) == true)
// refresh your page
});
}, 1000);
如果没有Web套接字,唯一的方法是在后台运行Javascript setInterval
并对Laravel API运行ajax调用。API 将检查是否有任何更改并响应更新,这些更新将由您的 ajax 回调接收并应用于页面。