Sokong Pemindahan-Pengekodan jQuery:chunked
P粉566048790
P粉566048790 2023-10-25 23:44:37
0
1
676

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粉566048790
P粉566048790

membalas semua(1)
P粉366946380

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




?>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan