में जेएसओएनएआरए के माध्यम से धीमी पुनरावृत्ति, मैं एक एप्लीकेशन बनाने के लिए जीडब्ल्यूटी का उपयोग कर रहा हूं, और मुझे कुछ तेज गति के मुद्दों का सामना करना पड़ रहा है जो मैंने सोचा था कि बहुत तेज़ होगा। मैं निम्नलिखित संरचना में डेटा के साथ एक JSONObject है (लेकिन यह बहुत बड़ा है):जीडब्ल्यूटी
{"nodeData" : [
{ "name":"one", "attributes":["uno","dos"]},
{"name":"two", "attributes":["tres"]}
]
}
मैं एक ArrayList प्रत्येक नोड वस्तु है जो में सभी विशेषताओं स्टोर करने के लिए JSON ऑब्जेक्ट के माध्यम से पुनरावृति करने के लिए कोशिश कर रहा हूँ, विशेषता के साथ पाश मैं क्रियान्वित कर रहा हूँ के लिए 4 से 800.
JSONObject JSONnode = nodeData.get(i).isObject();
Node node = new Node(JSONnode.get("name").toString();
JSONArray attributeArray = JSONnode.get("Attributes").isArray();
int attributeSize = attributeArray.size();
for(int j = 0; k < attributeSize; j++){
node.attributeArrayList.add(attributeArray.get(j).toString();
}
से लेकर आकार एक मिनट है, जो बहुत लंबा लगता है के बारे में ले जा रहा है, और मुझे यकीन है कि यह कैसे सुधार करने के लिए नहीं कर रहा हूँ। यह मिनट विकास मोड में है, लेकिन मुझे नहीं पता कि यह संकलित होने पर यह तेज़ होगा या नहीं।
जिस तरह से आप JSON संरचना को पार्स कर रहे हैं ठीक है। लगभग 800 रिकॉर्ड के लिए एक मिनट थोड़ा सा लगता है। हालांकि मैं गारंटी दे सकता हूं कि उत्पादन मोड में प्रदर्शन ठीक है (आपको वास्तव में इसे आजमाएं)। परीक्षण उद्देश्यों के लिए आप node.attributeArrayList.add() कॉल को हटा सकते हैं और देख सकते हैं कि यह प्रदर्शन को प्रभावित करता है या नहीं। बीटीडब्लू आप किस ब्राउज़र का विकास मोड में उपयोग कर रहे हैं? –
कारण मैं उत्पादन मोड का उपयोग नहीं कर रहा हूं क्योंकि मुझे एसिंक कॉल पर 404 त्रुटि मिल रही है। चूंकि मुझे विकास मोड पर 404 नहीं मिल रहा है, इसलिए मैं इसका उपयोग कर रहा हूं। उत्तरों के लिए मेरी खोज ने सुझाव दिया कि यह एक एसओपी समस्या हो सकती है, इसलिए मैंने इसे अलग करने के लिए धक्का दिया है। – aelnaiem
ए 404 के पास एसओपी के साथ कुछ लेना देना नहीं है (क्योंकि 404 का मतलब है कि सर्वर पहुंचा है)। हालांकि यह बहुत अच्छी तरह से हो सकता है कि आप एक पूर्ण पथ का उपयोग कर रहे हैं, जो देव मोड में काम करता है क्योंकि वेबपैप सर्वर के रूट पर तैनात किया जाता है, लेकिन प्रोड मोड में नहीं, जहां आपने वेबपैप को एक खाली "संदर्भ पथ के साथ तैनात किया है "। सबसे अधिक संभावना है कि आपके पथ को 'GWT.getHostPageBaseURL()' में जोड़ना है, इसलिए यह आपके होस्ट पेज पर "सापेक्ष" है, जहां भी इसे तैनात किया गया है। –