使用PHP,实际上有两种选择,无需使用Web套接字或推送设置.这不是Laravel的事情,它更像是一个请求JSON“事物”的AJAX循环.
短轮询
Olark将这种方法用于他们的聊天脚本.
setInterval(function() {
$.getJSON("/path", function(data) {
// update the view with your fresh data
});
}, 5000);
长期民意调查
使用Javascript
var eventName = function() {
$.getJSON("/path", function(data) {
// update the view with your fresh data
if (data.progress < 100)
eventName();
});
};
控制器逻辑
当用户上传CSV并等待它完成上传和处理时,我会使用此功能.
// in your controller
$check = true;
while ($check) {
// search database
// compare values
if ($newDataWasFound)
$check = false;
$progressFromAbove = 90;
}
return Response::json(array(
'newData' => $array,
'progress' => $progressFromAbove,
));
我使用Laravel 3对此进行了截屏,但Long Polling与PHP相关而非Laravel.
https://www.youtube.com/watch?v=LDgJF77jELo
例子