इंटरफ़ेस पर पुनर्विचार करें
सबसे पहले, एक उपयोगकर्ता इंटरफ़ेस डिज़ाइन जो क्लाइंट पर 50-100k पंक्तियों को दिखाता है, शायद पहली जगह में सबसे अच्छा उपयोगकर्ता इंटरफ़ेस नहीं है। न केवल यह है कि क्लाइंट को और क्लाइंट को प्रबंधित करने के लिए बड़ी मात्रा में डेटा भेजने के लिए और शायद कुछ मोबाइल उपकरणों में अव्यवहारिक है, लेकिन यह स्पष्ट रूप से किसी भी उपयोगकर्ता की तुलना में अधिक पंक्तियों को वास्तव में किसी भी बातचीत में पढ़ने के लिए जा रहा है पन्ना। तो, पहला आदेश उपयोगकर्ता इंटरफ़ेस डिज़ाइन पर पुनर्विचार करना और किसी प्रकार का अधिक मांग-संचालित इंटरफ़ेस (पृष्ठांकित, वर्चुअल स्क्रॉल, अक्षर द्वारा की गई, आदि ...) बनाना हो सकता है। एक अलग (और उम्मीद से बेहतर) यूजर इंटरफेस डिजाइन के लिए बहुत सारी अलग-अलग संभावनाएं हैं जो डेटा ट्रांसफर राशि को कम करती हैं। कौन सा डिज़ाइन सबसे अच्छा होगा यह पूरी तरह से डेटा और उपयोगकर्ता द्वारा संभावित उपयोग मॉडल पर निर्भर करता है।
डेटा को टुकड़ों में भेजें
उस ने कहा, यदि आप क्लाइंट को इतना डेटा स्थानांतरित करने जा रहे थे, तो आप शायद इसे विखंडू (एक समय में पंक्तियों के समूह) में भेजना चाहते हैं। विखंडू के साथ विचार यह है कि आप एक खंड में उपभोग योग्य मात्रा में डेटा भेजते हैं जैसे कि ग्राहक इसे पार्स कर सकता है, इसे संसाधित कर सकता है, परिणाम दिखा सकता है और फिर अगले खंड के लिए तैयार हो सकता है। क्लाइंट पूरे समय सक्रिय रह सकता है क्योंकि इसमें अन्य उपयोगकर्ता घटनाओं को संसाधित करने के लिए चक्रों के बीच चक्र उपलब्ध हैं। लेकिन, इसे टुकड़ों में भेजने से प्रत्येक पंक्ति के लिए एक अलग संदेश भेजने का ओवरहेड कम हो जाता है। यदि आपका सर्वर संपीड़न का उपयोग कर रहा है, तो चंक्स संपीड़न दक्षता के लिए भी अधिक मौका देता है। कितना बड़ा हिस्सा होना चाहिए (उदाहरण के लिए डेटा की कितनी पंक्तियाँ होनी चाहिए) कारकों के एक समूह पर निर्भर करता है और संभावित ग्राहकों या सबसे कम बिजली की उम्मीद वाले ग्राहक के साथ प्रयोग के माध्यम से सबसे अच्छा निर्धारित किया जाता है। उदाहरण के लिए, आप प्रति संदेश 100 पंक्तियाँ भेजना चाह सकते हैं।
डेटा के लिए एक कुशल स्थानांतरण प्रारूप का उपयोग करें
और, यदि आप बड़ी मात्रा में डेटा स्थानांतरित करने के लिए socket.io का उपयोग कर रहे हैं, तो आप फिर से देखना चाहेंगे कि आप JSON प्रारूप का उपयोग कैसे करते हैं। उदाहरण के लिए, 100,000 वस्तुओं को भेजना जो सभी समान संपत्ति नामों को दोहराते हैं, बहुत कुशल नहीं है। आप अक्सर अपने स्वयं के अनुकूलन का आविष्कार कर सकते हैं जो संपत्ति के नामों को दोहराने से बचते हैं जो हर वस्तु में बिल्कुल समान होते हैं। उदाहरण के लिए, इनमें से 100,000 भेजने के बजाय:
{"firstname": "John", "lastname": "Bundy", "state": "Az", "country": "US"}
यदि प्रत्येक वस्तु में समान गुण होते हैं, तो आप या तो संपत्ति के नामों को अपने कोड में कोड कर सकते हैं या संपत्ति के नाम एक बार भेज सकते हैं और फिर एक सरणी में मूल्यों की अल्पविराम से अलग सूची भेज सकते हैं जिसे प्राप्त करने वाला कोड किसी ऑब्जेक्ट में डाल सकता है उपयुक्त संपत्ति नामों के साथ:
["John", "Bundy", "Az", "US"]
डेटा का आकार कभी-कभी केवल अनावश्यक जानकारी को हटाकर 2-3x तक कम किया जा सकता है।