कम बैंडविड्थ और ज़्यादा इंतज़ार के समय को समझना

यह समझना ज़रूरी है कि खराब या भरोसेमंद न होने पर, अपने ऐप्लिकेशन या साइट का इस्तेमाल करके कैसा महसूस होता है. इसके हिसाब से उसे बनाएं. इसमें कई तरह के टूल आपकी मदद कर सकते हैं.

कम बैंडविड्थ और ज़्यादा इंतज़ार के समय की मदद से टेस्ट करें

मोबाइल डिवाइसों पर वेब को इस्तेमाल करने वाले लोगों का बढ़ रहा अनुपात. घर पर भी, कई लोग मोबाइल के लिए फ़िक्स्ड ब्रॉडबैंड को छोड़ रहे हैं.

इस संदर्भ में, यह समझना ज़रूरी है कि खराब या भरोसेमंद कनेक्टिविटी के समय, अपने ऐप्लिकेशन या साइट का इस्तेमाल करने पर क्या महसूस होता है. अलग-अलग तरह के सॉफ़्टवेयर टूल, कम बैंडविड्थ और ज़्यादा इंतज़ार का इस्तेमाल करने में आपकी मदद कर सकते हैं.

नेटवर्क थ्रॉटलिंग को एम्युलेट करें

साइट बनाते या अपडेट करते समय, आपको कनेक्टिविटी की अलग-अलग स्थितियों में उसकी परफ़ॉर्मेंस अच्छी रखनी चाहिए. कई टूल से मदद मिल सकती है.

ब्राउज़र टूल

Chrome DevTools की मदद से, नेटवर्क पैनल के प्रीसेट या कस्टम सेटिंग का इस्तेमाल करके, कई तरह की अपलोड/डाउनलोड स्पीड और राउंड ट्रिप की मदद से अपनी साइट की जांच की जा सकती है. बुनियादी बातें जानने के लिए नेटवर्क की परफ़ॉर्मेंस का विश्लेषण करना देखें.

Chrome DevTools थ्रॉटलिंग

सिस्‍टम टूल

अगर आपने Xcode के लिए हार्डवेयर IO टूल इंस्टॉल किया है, तो नेटवर्क लिंक कंडीशनर, Mac पर उपलब्ध एक प्राथमिकता पैनल है:

Mac नेटवर्क लिंक कंडीशनर कंट्रोल पैनल

Mac नेटवर्क लिंक कंडीशनर सेटिंग

Mac नेटवर्क लिंक कंडीशनर कस्टम सेटिंग

डिवाइस एम्युलेशन

Android Emulator आपको Android पर ऐप्लिकेशन (इनमें वेब ब्राउज़र और हाइब्रिड वेब ऐप्लिकेशन भी शामिल हैं) चलाते समय कई तरह की नेटवर्क शर्तों को सिम्युलेट करने की सुविधा देता है:

Android Emulator

Android एम्युलेटर की सेटिंग

iPhone के लिए, Network Link Conditioner का इस्तेमाल खराब नेटवर्क की स्थितियों (ऊपर देखें) को ठीक करने के लिए किया जा सकता है.

अलग-अलग जगहों और नेटवर्क से टेस्ट करें

कनेक्टिविटी की परफ़ॉर्मेंस, सर्वर की जगह के साथ-साथ नेटवर्क टाइप पर भी निर्भर करती है.

WebPagetest ऐसी ऑनलाइन सेवा है जो कई तरह के नेटवर्क और होस्ट जगहों का इस्तेमाल करके आपकी साइट के लिए परफ़ॉर्मेंस टेस्ट का एक सेट चालू करती है. उदाहरण के लिए, भारत में 2G नेटवर्क पर मौजूद सर्वर से या अमेरिका के किसी शहर में केबल से अपनी साइट आज़माई जा सकती है.

WebPagetest की सेटिंग

कोई जगह चुनें और बेहतर सेटिंग में जाकर, कनेक्शन का टाइप चुनें. यहां तक कि आप स्क्रिप्ट का इस्तेमाल करके (उदाहरण के लिए, किसी साइट पर लॉग इन करने के लिए) या उनके RESTफ़ुल एपीआई इस्तेमाल करके भी जांच को ऑटोमेट कर सकते हैं. इससे आपको बिल्ड प्रोसेस या परफ़ॉर्मेंस लॉग करने में कनेक्टिविटी टेस्टिंग को शामिल करने में मदद मिलती है.

Fiddler, GeoEdge के ज़रिए ग्लोबल प्रॉक्सी की सुविधा देता है. इसके पसंद के मुताबिक बनाए गए नियमों का इस्तेमाल, मॉडम स्पीड का पता लगाने के लिए किया जा सकता है:

फ़िडलर प्रॉक्सी

खराब नेटवर्क पर टेस्ट करना

सॉफ़्टवेयर और हार्डवेयर प्रॉक्सी की मदद से, मोबाइल नेटवर्क में समस्या पैदा करने वाली स्थितियों, जैसे कि बैंडविथ थ्रॉटलिंग, पैकेट डिले, और अचानक होने वाली पैकेट लॉस जैसी समस्याओं को ठीक किया जा सकता है. शेयर की गई प्रॉक्सी या खराब नेटवर्क से डेवलपर की टीम अपने वर्कफ़्लो में असल दुनिया के नेटवर्क टेस्टिंग को शामिल कर सकती है.

Facebook का ऑगमेंटेड ट्रैफ़िक कंट्रोल (एटीसी), बीएसडी लाइसेंस वाले ऐप्लिकेशन का एक सेट है. इनका इस्तेमाल ट्रैफ़िक को बढ़ाने और खराब नेटवर्क की स्थितियों को एम्युलेट करने के लिए किया जा सकता है:

Facebook का ऑगमेंटेड ट्रैफ़िक कंट्रोल

यहां तक कि Facebook ने यह समझने में मदद करने के लिए 2G Tuesdays की भी शुरुआत की है कि लोग 2G पर अपने प्रॉडक्ट का इस्तेमाल कैसे करते हैं. मंगलवार को, कर्मचारियों को एक पॉप-अप मिलता है, जिसमें उन्हें 2G कनेक्शन को सिम्युलेट करने का विकल्प मिलता है.

चार्ल्स एचटीटीपी/एचटीटीपीएस प्रॉक्सी का इस्तेमाल बैंडविथ और इंतज़ार के समय में बदलाव करने के लिए किया जा सकता है. चार्ल्स एक व्यावसायिक सॉफ़्टवेयर है, लेकिन उसका मुफ़्त में इस्तेमाल किया जा सकता है.

चार्ल्स प्रॉक्सी बैंडविड्थ और इंतज़ार के समय की सेटिंग

चार्ल्स के बारे में ज़्यादा जानकारी codewithchris.com पर उपलब्ध है.

गलत कनेक्टिविटी और "लाई-फ़ाई" को हैंडल करना

लाई-फ़ाई क्या है?

लाई-फ़ाई शब्द कम से कम साल 2008 में शुरू हुआ था. यह साल 2008 में शुरू हुआ था. इसका मतलब है कि फ़ोन, ऐसा था. इसका मतलब ऐसी कनेक्टिविटी से है जो उस तरह की कनेक्टिविटी नहीं है. आपका ब्राउज़र ऐसे काम करता है जैसे उसमें कनेक्टिविटी है, जबकि किसी भी वजह से उसमें कनेक्टिविटी नहीं होती.

कनेक्टिविटी के गलत बारे में बताने से खराब अनुभव मिल सकता है, क्योंकि ब्राउज़र (या JavaScript) हार नहीं मानकर एक बेहतर फ़ॉलबैक चुनने के बजाय, संसाधनों को वापस पाने की कोशिश करता रहता है. लाई-फ़ाई असल में ऑफ़लाइन से भी बदतर हो सकता है; कम से कम अगर कोई डिवाइस बिलकुल ऑफ़लाइन है, तो आपका JavaScript इस तरह की कार्रवाई कर सकता है.

लाई-फ़ाई की बड़ी समस्या हो सकती है, क्योंकि ज़्यादातर लोग मोबाइल का इस्तेमाल करना पसंद करते हैं और फ़िक्स ब्रॉडबैंड से दूर हो जाते हैं. अमेरिका की जनगणना के हाल ही के डेटा से पता चलता है कि तय ब्रॉडबैंड कनेक्शन का इस्तेमाल बंद कर दिया गया है. नीचे दिया गया चार्ट साल 2013 की तुलना में 2015 में घर पर मोबाइल इंटरनेट के इस्तेमाल को दिखाता है:

अमेरिका की जनगणना के डेटा का चार्ट. इसमें, फ़िक्स्ड ब्रॉडबैंड के बजाय मोबाइल का इस्तेमाल करने के बारे में जानकारी दी गई है. खास तौर पर, कम आय वाले परिवारों के लिए यह चार्ट

बार-बार होने वाली कनेक्टिविटी को मैनेज करने के लिए, टाइम आउट का इस्तेमाल करना

पहले, XHR का इस्तेमाल करने वाले हैकी तरीकों का इस्तेमाल इंटरमिटेंट कनेक्टिविटी की जांच करने के लिए किया जाता है. हालांकि, सर्विस वर्कर नेटवर्क टाइम आउट सेट करने के लिए ज़्यादा भरोसेमंद तरीके चालू करते हैं. कोड की सिर्फ़ कुछ लाइनों के साथ वर्कबॉक्स का इस्तेमाल करके, ऐसा किया जा सकता है:

workboxSW.router.registerRoute(
  '/path/to/image',
  workboxSW.strategies.networkFirst({networkTimeoutSeconds: 3}),
);

जेफ़ पॉस्निक के Chrome Dev समिट में मौजूद वर्कबॉक्स के बारे में ज़्यादा जानने के लिए, वर्कबॉक्स: ज़रूरत के हिसाब से PWA लाइब्रेरी देखें.

फ़ेच एपीआई के लिए समय खत्म होने की सुविधा भी डेवलप की जा रही है. इसलिए, Streams API से कॉन्टेंट डिलीवरी को ऑप्टिमाइज़ करने और एक ही तरह के अनुरोधों से बचने में मदद मिलेगी. जेक आर्चिबाल्ड सुपरचार्जिंग पेज लोड में लाई-फ़ाई से निपटने के बारे में ज़्यादा जानकारी दे रहे हैं.

सुझाव/राय दें या शिकायत करें