Ich verwende jQuery Ajax, um eine Ajax-Anfrage an eine PHP-Datei zu senden.
$.ajax({ url: VIP_AJAX_URL + '/add', data: 'slug=' + slug, method: 'POST', beforeSend: function () { Swal.fire({ title: '请稍候..', html: '我们正在检查。
这个过程可能需要一些时间。', allowOutsideClick: false, didOpen: () => { Swal.showLoading() } }) }, success: function (res) { if (res !== 'success') { Swal.fire({ icon: 'error', title: 'Oops...', html: res, }) return; } console.log(res); } })
Während diese Anfrage ausgeführt wird, drucke ich in regelmäßigen Abständen eine PHP-Datei auf dem Bildschirm aus.
echo 'abc'; sleep(5); echo 'def'; sleep(5); echo 'ghi';
Aber nachdem alle Prozesse abgeschlossen sind, wird der Ajax-Prozess beendet. Ich möchte, dass der Wert während des Vorgangs auf dem Bildschirm angezeigt wird.
Zum Beispiel möchte ich den Wert „abc“ erhalten, wenn die Anfrage gestellt wird, „def“ nach 5 Sekunden und „ghi“ nach 10 Sekunden. Wie kann ich das machen? Ich möchte dies erreichen, ohne Sitzungen, Cookies oder Datenbanken zu verwenden.
不行,你不能这样做
你只能在前端这样做
你可以定期获取响应,然后使用append()将其添加到html视图中,这样它就会不断增长
我经常在JavaScript中显示进度时使用它,例如在Laravel上的php artisan migrate过程中