2012-01-20 16 views
28

मैं जावास्क्रिप्ट/jquery के साथ तैयार कुछ कस्टम नियंत्रण के साथ पेड़ बना रहा हूं।ब्राउज़र के जवाब के लिए अधिकतम जेसन आकार

पेड़ हम जावा स्क्रिप्ट के लिए इनपुट के माध्यम से पुनरावृति और पेड़ बनाने के लिए के रूप में json वस्तु आपूर्ति कर रहे हैं बनाने के लिए

चूंकि डेटा की मात्रा 25K नोड तक जा सकती है। एक बुनियादी भार परीक्षण के दौरान हमने पहचाना कि ब्राउज़र इस तरह के वॉल्यूम के लिए दुर्घटनाग्रस्त हो जाएगा।

वैकल्पिक समाधान सिर्फ नोड के प्रथम स्तर लोड और AJAX अनुरोध के माध्यम से मांग पर लोड आराम कर रहा है। पहले स्तर की मात्रा 500-1 के नोड्स तक भिन्न हो सकती है।

सर्वर से प्रतिक्रिया के रूप में जेसन को अधिकतम आकार क्या होना चाहिए। ब्राउजर पर डेटा की मात्रा को संसाधित करने का सबसे अच्छा तरीका क्या हो सकता है।

+0

कोई आकार सीमा नहीं है, मैंने अजाक्स अनुरोधों का सामना किया है जिसमें पूरा होने में 5 सेकंड लग गए हैं। – riship89

+1

@ ऋषिकेशप 1 9 और इसलिए मैं भी हूं, और वहां केवल 500 बाइट डेटा भी था ... आपके अस्थायी मात्रा के साथ आकार सीमा क्या है? – Jeach

+0

मैंने हमेशा सोचा था कि सीमाएं थीं ... इसलिए मैंने एक बहुत ही सरल अजाक्स पाश चलाया जहां मैं एक PHP/अपाचे स्क्रिप्ट को एक यूआरएल अनुरोध भेजूंगा (यह इसे वापस भेजता है), प्रत्येक लूप पर एक वर्ण द्वारा 'डेटा पेलोड' को बढ़ाता है । जब मेरा डेटा आकार '80 9 7 बाइट्स' तक पहुंच गया, तो मुझे सर्वर से "414 (अनुरोध-यूआरआई बहुत बड़ा)" संदेश प्राप्त हुआ। यदि आप इसे Google करते हैं तो आप 414 त्रुटि के बारे में अधिक जानकारी देख सकते हैं ... यह विकी पृष्ठ है: http://en.wikipedia.org/wiki/List_of_HTTP_status_codes – Jeach

उत्तर

13

http प्रतिक्रिया की कोई अधिकतम आकार सीमा (या इंट का अधिकतम आकार या ब्राउज़र की सीमा या सर्वर की सीमा के लिए कॉन्फ़िगर किया गया है) नहीं है।

सबसे अच्छा तरीका AJAX का उपयोग डेटा के हिस्से को लोड करने के लिए किया जाता है, जबकि इसे दिखाने की आवश्यकता होती है।

+8

को संकुचित करें कुछ ब्राउज़र में अधिकतम आकार हैं, इस पर निर्भर करता है कि जेसन का मूल्यांकन कैसे किया जाएगा। मोबाइल सफारी() एक जेसन नहीं उगाएगा, अगर यह 10 एमबी –

+0

@ckuetbach से बड़ा है तो ब्राउज़र की सीमा होने पर यह सही है। – xdazz

+1

शायद यह भी ध्यान देने योग्य है कि [सर्वर अधिकतम आकार हो सकते हैं] (http://forums.asp.net/t/1090853.aspx/1) भी। – ruffin

7

एक HTTP प्रतिक्रिया की कोई आकार सीमा नहीं है। जेएसओएन एक HTTP प्रतिक्रिया के रूप में आ रहा है। तो इसकी कोई सीमा सीमा नहीं है।

समस्या हो सकती है यदि वस्तु JSON उत्तर से पार्स बहुत अधिक स्मृति खपत करता है। यह ब्राउज़र को दुर्घटनाग्रस्त कर देगा। तो बेहतर है कि आप विभिन्न डेटा आकारों के साथ परीक्षण करें और जांचें कि आपका ऐप सही तरीके से काम करता है या नहीं।

मुझे लगता है कि आलसी लोडिंग इतनी बड़ी मात्रा में डेटा के लिए सबसे अच्छा तरीका है। विशेष रूप से ऑब्जेक्ट अक्षर से निपटने पर।

याहू से High Performance Ajax Application प्रस्तुति देखें।

3

ठीक है मुझे लगता है कि मैं अपने दो सेंट देने में बहुत देर हो चुकी हूं। पूरक shiplu.mokadd.im का उत्तर ब्राउज़र मेमोरी एक सीमा है और HTTP प्रतिक्रिया में टीसीपी स्पेक के अनुसार डेटा की कोई मात्रा हो सकती है।

लेकिन मैं गूगल क्रोम (संस्करण 29.0.xx) और जेट्टी सर्वर जहां जेट्टी सर्वर से प्रतिक्रिया एक पेलोड 335MB की राशि है का उपयोग करता है एक आवेदन दिया है। जबकि ब्राउजर उस बड़े आकार की प्रतिक्रिया प्राप्त कर रहा है, क्रोम संदेश छोड़ने से रोकता है "आईपीसी संदेश बहुत बड़ा है"। हालांकि यह Google क्रोम के लिए विशिष्ट है (अन्य ब्राउज़रों के बारे में निश्चित नहीं है), प्रतिक्रिया के अधिकतम आकार पर एक सीमा होनी चाहिए।

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