Bagaimana untuk mendapatkan nilai dicetak pada skrin sambil menunggu hasil ajax?
P粉252116587
P粉252116587 2023-09-15 23:36:30
0
1
535

Saya menggunakan jQuery ajax untuk menghantar permintaan ajax ke fail php.

$.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); } })

Semasa permintaan ini dijalankan, saya sedang mencetak ke skrin pada selang waktu dalam fail php.

echo 'abc'; sleep(5); echo 'def'; sleep(5); echo 'ghi';

Tetapi selepas semua proses selesai, proses ajax dimatikan. Saya ingin mendapatkan nilai yang dicetak pada skrin semasa proses sedang berjalan.

Sebagai contoh, saya ingin mendapatkan nilai 'abc' apabila permintaan dibuat, 'def' selepas 5 saat dan 'ghi' selepas 10 saat. Bagaimana saya boleh melakukan ini? Saya mahu mencapai ini tanpa menggunakan sesi, kuki atau pangkalan data.

P粉252116587
P粉252116587

membalas semua (1)
P粉638343995

Tidak, anda tidak boleh melakukan ini

Anda hanya boleh melakukan ini di bahagian hadapan

Anda boleh mendapatkan respons secara berkala dan menambahnya pada paparan html menggunakan append() supaya ia terus berkembang

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)

Saya sering menggunakan ini apabila menunjukkan kemajuan dalam JavaScript, seperti semasa php artisan migrate di Laravel

    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!