溫馨提示×

php flush 在 ajax 中如何使用

PHP
小樊
95
2024-12-06 01:41:55
欄目: 編程語言

在 AJAX 中使用 PHP 的 flush() 函數,您需要確保您的服務器配置允許輸出緩沖區被清空。flush() 函數用于將已輸出的數據發送給瀏覽器并清空輸出緩沖區。

首先,確保您的 PHP 設置允許使用 flush()。在 php.ini 文件中,找到 output_buffering 設置并將其值更改為 Off

output_buffering = Off

然后,創建一個名為 flush_example.php 的 PHP 文件,其中包含以下內容:

<?php
header('Content-Type: text/html; charset=utf-8');
for ($i = 0; $i < 10; $i++) {
    echo "Output: {$i}<br>";
    ob_flush(); // 清空(釋放)輸出緩沖區
    flush(); // 將已輸出的數據發送給瀏覽器
    sleep(1); // 等待1秒
}
?>

在這個示例中,我們使用 ob_flush()flush() 函數將每次循環的輸出發送給瀏覽器。sleep(1) 函數用于暫停腳本執行1秒鐘,以便您可以看到每次輸出的延遲。

接下來,創建一個名為 ajax_flush_example.html 的 HTML 文件,其中包含以下內容:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>AJAX Flush Example</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
    <button id="start">Start</button>
    <div id="output"></div>

    <script>
        $(document).ready(function() {
            $('#start').click(function() {
                $.ajax({
                    url: 'flush_example.php',
                    type: 'GET',
                    dataType: 'html',
                    success: function(data) {
                        $('#output').html(data);
                    }
                });
            });
        });
    </script>
</body>
</html>

在這個 HTML 文件中,我們使用 jQuery AJAX 發送請求到 flush_example.php 文件。當用戶點擊 “Start” 按鈕時,AJAX 請求將觸發并獲取 flush_example.php 文件的輸出。

請注意,由于瀏覽器和服務器之間的網絡延遲,您可能無法立即看到輸出的每一行。然而,如果您在 flush_example.php 中增加了 ob_implicit_flush(1); 函數調用,那么每次輸出后都會自動刷新瀏覽器輸出,從而減少延遲的可見性。

<?php
header('Content-Type: text/html; charset=utf-8');
ob_implicit_flush(1); // 自動刷新瀏覽器輸出
for ($i = 0; $i < 10; $i++) {
    echo "Output: {$i}<br>";
    ob_flush(); // 清空(釋放)輸出緩沖區
    flush(); // 將已輸出的數據發送給瀏覽器
    sleep(1); // 等待1秒
}
?>

現在,當您運行 ajax_flush_example.html 并點擊 “Start” 按鈕時,您應該能夠看到每秒輸出一行文本的效果。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女