我正在使用jQuery ajax向php文件发送ajax请求。
$.ajax({ url: VIP_AJAX_URL + '/add', data: 'slug=' + slug, method: 'POST', beforeSend: function () { Swal.fire({ title: '请稍候..', html: '我们正在检查。 <br/>这个过程可能需要一些时间。', allowOutsideClick: false, didOpen: () => { Swal.showLoading() } }) }, success: function (res) { if (res !== 'success') { Swal.fire({ icon: 'error', title: 'Oops...', html: res, }) return; } console.log(res); } })
在这个请求进行中,我在php文件中以间隔打印到屏幕。
echo 'abc'; sleep(5); echo 'def'; sleep(5); echo 'ghi';
但是在所有进程完成后,ajax进程被终止。我想在进程进行中获取到屏幕上打印的值。
例如,我想在请求发出时获取'abc'的值,在5秒后获取'def',在10秒后获取'ghi'。我该如何做到?我想在不使用会话、cookie或数据库的情况下实现。
不行,你不能这样做
你只能在前端这样做
你可以定期获取响应,然后使用append()将其添加到html视图中,这样它就会不断增长
我经常在JavaScript中显示进度时使用它,例如在Laravel上的php artisan migrate过程中