如何在等待ajax結果時取得螢幕上列印的值?
P粉252116587
P粉252116587 2023-09-15 23:36:30
0
1
549

我正在使用jQuery ajax向php檔案發送ajax請求。

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

在這個請求進行中,我在php檔案中以間隔列印到螢幕。

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

但是在所有行程完成後,ajax行程終止。我想在進程進行中獲取到螢幕上列印的值。

例如,我想在請求發出時取得'abc'的值,在5秒後取得'def',在10秒後取得'ghi'。我該如何做到?我想在不使用會話、cookie或資料庫的情況下實現。

P粉252116587
P粉252116587

全部回覆 (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過程中

    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板
    關於我們 免責聲明 Sitemap
    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!