cari

Rumah  >  Soal Jawab  >  teks badan

Sokong Pemindahan-Pengekodan jQuery:chunked

Saya seorang pembangun web. Menggunakan header() dalam skrip saya menetapkan "Transfer-Encoding:chunked". dan flush() ke halaman web. Ia akan dicetak dalam cara perkongsian masa dalam halaman web. berfungsi dengan baik. Walau bagaimanapun, apabila saya meminta this.it menggunakan jQuery.ajax(), ia sentiasa dikeluarkan bersama (chunking tidak berguna).

Bagaimana untuk menyelesaikan masalah ini? Menggunakan pengekodan chunked dalam jQuery ajax?

P粉566048790P粉566048790443 hari yang lalu726

membalas semua(1)saya akan balas

  • P粉366946380

    P粉3669463802023-10-26 11:10:35

    Anda tidak boleh menggunakan jquery.ajax untuk membaca jawapan http sebahagian secara berterusan. jquery ajax hanya memanggil fungsi panggil balik kejayaan apabila sambungan ditamatkan. anda patut gunakan Ini pemalam jquery.

    Jika anda menggunakan php anda boleh menggunakan kod berikut:

    <html>
            <head>
                <script src="jquery-1.4.4.js"></script>
                <script src="jquery.stream-1.2.js"></script>
                <script>
    
                    var println = function(string){
                        $("#console").append(string+"<br />");
                    }
    
                    $(document).ready(function(){
    
    
    
                        $.stream("stream.php",{
                            open:function(){
                                println("opened");
                            },
                            message:function(event){
                                println(event.data);
                            },
                            error:function(){
                                println("error");
                            },
                            close:function(){
                                println("closed");
                            }
                        });
    
    
    
                    });
                </script>
            </head>
            <body>
    
    
                <div id="console"></div>
    
            </body>
        </html>

    Di bahagian pelayan:

    stream.php

    <?php
    
    
       header('Content-Encoding', 'chunked');
       header('Transfer-Encoding', 'chunked');
       header('Content-Type', 'text/html');
       header('Connection', 'keep-alive');
    
       ob_flush();
       flush();
    
       echo("23123454645645646;");
    
    
       $p = "";
       for ($i=0; $i < 1024; $i++) { 
           $p .= " ";
       };
       echo($p.";");
    
    
    
       for ($i = 0; $i < 10000; $i++) {
          echo('6;string;');
          ob_flush();
          flush();
          sleep(2);
       }
    
    
    
    
    ?>

    balas
    0
  • Batalbalas