कॉन्टेंट की परफ़ॉर्मेंस को ऑप्टिमाइज़ करना

हमारे वेब ऐप्लिकेशन का दायरा, लक्ष्य, और सुविधाएं लगातार बढ़ रही हैं. यह एक अच्छी बात है. हालांकि, वेब को बेहतर बनाने की लगातार कोशिशों की वजह से एक और ट्रेंड देखने को मिल रहा है: हर ऐप्लिकेशन से डाउनलोड किए जाने वाले डेटा की मात्रा लगातार बढ़ रही है. बेहतर परफ़ॉर्मेंस देने के लिए, हमें हर बाइट की डिलीवरी को ऑप्टिमाइज़ करना होगा!

एक मॉडर्न वेब ऐप्लिकेशन कैसा दिखता है? एचटीटीपी आर्काइव से हमें इस सवाल का जवाब मिल सकता है. यह प्रोजेक्ट, सबसे लोकप्रिय साइटों (Alexa की टॉप 10 लाख साइटों की सूची में से तीन लाख से ज़्यादा साइटें) को समय-समय पर क्रॉल करके, यह ट्रैक करता है कि वेब कैसे बनाया जाता है. साथ ही, हर डेस्टिनेशन के लिए संसाधनों की संख्या, कॉन्टेंट टाइप, और अन्य मेटाडेटा के बारे में आंकड़े रिकॉर्ड और इकट्ठा करता है.

एचटीटीपी आर्काइव के रुझान

50वां पर्सेंटाइल 75वां पर्सेंटाइल 90वां पर्सेंटाइल
एचटीएमएल 13 केबी 26 केबी 54 केबी
इमेज 528 केबी 1213 केबी 2384 केबी
JavaScript 207 केबी 385 केबी 587 केबी
सीएसएस 24 केबी 53 केबी 108 केबी
अन्य 282 केबी 308 केबी 353 केबी
कुल 1054 केबी 1985 केबी 3486 केबी

ऊपर दिए गए डेटा से, जनवरी 2013 से जनवरी 2014 के बीच वेब पर लोकप्रिय डेस्टिनेशन के लिए डाउनलोड किए गए बाइट की संख्या में बढ़ोतरी का रुझान पता चलता है. ज़ाहिर है कि हर साइट एक ही दर से नहीं बढ़ती या उसे एक ही मात्रा में डेटा की ज़रूरत नहीं होती. इसलिए, हम डिस्ट्रिब्यूशन में अलग-अलग क्वांटाइल को हाइलाइट कर रहे हैं: 50वां (मीडियन), 75वां, और 90वां.

साल 2014 की शुरुआत में, एक सामान्य साइट में 75 अनुरोध होते थे. इनसे कुल 1054 केबी बाइट ट्रांसफ़र होते थे. साथ ही, पिछले साल के दौरान बाइट (और अनुरोधों) की कुल संख्या में लगातार बढ़ोतरी हुई है. यह अपने-आप में कोई हैरान करने वाली बात नहीं है, लेकिन इससे परफ़ॉर्मेंस पर काफ़ी असर पड़ता है: हां, इंटरनेट स्पीड बढ़ रही है, लेकिन अलग-अलग देशों में यह अलग-अलग दरों से बढ़ रही है. साथ ही, कई उपयोगकर्ताओं को अब भी डेटा कैप और महंगे सीमित डेटा वाले प्लान का इस्तेमाल करना पड़ता है - खास तौर पर मोबाइल पर.

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

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