मैं खंडबद्ध प्रतिक्रिया उत्पन्न करने के लिए, प्ले फ्रेमवर्क का उपयोग कर रहा हूं। कोड है:समय में 'चुंक' प्रतिक्रिया प्राप्त करने और पार्स करने के लिए क्लाइंट साइड में जावास्क्रिप्ट कैसे लिखें?
class Test extends Controller {
public static void chunk() throws InterruptedException {
for (int i = 0; i < 10; i++) {
String data = repeat("" + i, 1000);
response.writeChunk(data);
Thread.sleep(1000);
}
}
}
जब मैं ब्राउज़र का उपयोग दौरा करने के लिए http://localhost:9000/test/chunk
, मैं देख सकता डेटा हर दूसरे वृद्धि हुई प्रदर्शन किया। लेकिन, जब मैं डेटा प्राप्त करने और संभालने के लिए जावास्क्रिप्ट फ़ंक्शन लिखता हूं, तो पाया जाता है कि यह सभी डेटा प्राप्त होने तक अवरुद्ध हो जाएगा।
कोड है:
$(function(){
$.ajax(
"/test/chunked",
{
"success": function(data, textStatus, xhr) {
alert(textStatus);
}
}
);
});
मैं देख सकता हूँ एक संदेश बॉक्स 10s, जब सभी के बाद प्राप्त हुई ऊपर पॉप।
समय को डेटा कैसे प्राप्त करें और डेटा को कैसे संभालें?
ऐरेबफर का बेहतर उपयोग क्यों कर रहा है? – 4esn0k
@ 4esn0k: उदाहरण के लिए यदि आप एक बाइनरी प्रोटोकॉल का उपयोग करने का निर्णय लेते हैं, जो एक अच्छा विचार है। एक और बात है कि यहाँ ब्राउज़र स्मृति में पूरे डेटा रखने के लिए नहीं है, और जहाँ तक मैं समझता हूँ, इसे प्राप्त करने के लिए आसान 'एक' स्ट्रिंग' साथ तुलना ArrayBuffer' साथ है। 'Slice' बेहतर काम करना चाहिए, क्योंकि यह UTF-8 स्ट्रिंग के साथ काम करने के रूप में' substring' नहीं होते, लेकिन सिर्फ सरणी अनुक्रमित उपयोग कर सकते हैं। –
https://developer.mozilla.org/en-US/docs/DOM/XMLHttpRequest#responseType – 4esn0k