Wie kann ich den Wert auf dem Bildschirm ausdrucken lassen, während ich auf das Ajax-Ergebnis warte?
P粉252116587
P粉252116587 2023-09-15 23:36:30
0
1
534

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.

P粉252116587
P粉252116587

Antworte allen (1)
P粉638343995

不行,你不能这样做

你只能在前端这样做

你可以定期获取响应,然后使用append()将其添加到html视图中,这样它就会不断增长

function getLog() { fetch("https://gist.githubusercontent.com/prabansal/115387/raw/0e5911c791c03f2ffb9708d98cac70dd2c1bf0ba/HelloWorld.txt").then(async e=>{ let t = await e.text() document.getElementById("log").innerHTML += t+"
" }) } setInterval(getLog, 1000)

我经常在JavaScript中显示进度时使用它,例如在Laravel上的php artisan migrate过程中

    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!