2012-05-25 12 views
5

मैं एक वेब डेवलपर हूं। मेरी स्क्रिप्ट में "स्थानांतरण-एन्कोडिंग: खंडित" सेट करने के लिए हेडर() का उपयोग करें। और वेबपेज पर फ्लश()। यह वेबपृष्ठ समय-साझा में प्रिंट करेगा। यह ठीक काम करता है। लेकिन, जब मैं इसका अनुरोध करने के लिए jQuery.ajax() का उपयोग करता हूं। यह हमेशा सभी को एक साथ आउटपुट करता है (अकुशल अकुशल)।jquery समर्थन ट्रांसफर-एन्कोडिंग: खंडित? कैसे

इसे कैसे हल करें? jQuery AJAX में खंडित एन्कोडिंग का उपयोग करें?

+0

अरे, आप अंततः के लिए एक समाधान मिल गया करना इस ? यदि ऐसा है, तो इसे यहां पोस्ट करें –

+0

मैं बिल्कुल इसी तरह की समस्या में फंस गया हूं –

उत्तर

11

आप jquery.ajax का उपयोग लगातार chunked http प्रतिक्रिया पढ़ने के लिए नहीं कर सकते हैं। jquery AJAX कनेक्शन समाप्त होने पर केवल सफलता कॉलबैक फ़ंक्शन को कॉल करेगा। आपको this jquery प्लगइन का उपयोग करना चाहिए। सर्वर साइड में

<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> 

:

यदि आप php का उपयोग कर रहे है तो आप इस कोड का उपयोग कर सकते हैं

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




?> 
+4

'jquery.stream' प्रोजेक्ट को जिथब में ले जाया गया है और इसका नाम बदलकर पोर्टल पर रखा गया है लेकिन पोर्टल अंतहीन जीवन तक पहुंच गया और वीबे में अवशोषित हो गया लेकिन वीबे का नाम बदलकर केटिया । Http://cettia.io – Stephan

+1

@Stephan पर जाएं, क्या आप कृपया लाइब्रेरी को बनाए रख सकते हैं? केवल कुछ लोग इस पुस्तकालय के महत्व को समझते हैं। क्या हम इसे github.com में डाल सकते हैं और इसे जमे हुए बना सकते हैं ताकि कोई भी 10 वर्षों में अपना नाम बदल न सके और समुदाय को भ्रमित कर सके? – YumYumYum

+2

@YumYumYum Cettia पहले से ही एक रखरखाव है। यहां उनकी जिथब प्रोफाइल है: https://github.com/flowersinthesand – Stephan

संबंधित मुद्दे