नई ट्विटर पर इस्तेमाल की जाने वाली तकनीकें

छवि

डेवलपर्स के अनुसार, ट्विटर डॉट कॉम का नया स्वरूप, साइट पर उपयोग की जाने वाली प्रौद्योगिकियों में सबसे साहसी परिवर्तन करने की अनुमति देता है। इसे ध्यान में रखते हुए, उन्होंने नई वास्तुकला को लगभग पूरी तरह से जावास्क्रिप्ट में लागू करना शुरू कर दिया। विकास, विस्तार और प्रदर्शन में आसानी के लिए विशेष रूप से ध्यान दिया गया था। इस समीक्षा में ट्विटर इंजीनियरों द्वारा विकसित कुछ अनूठे समाधानों का वर्णन किया गया है।





क्लाइंट एपीआई


सबसे महत्वपूर्ण वास्तुशिल्प परिवर्तनों में से एक यह था कि twitter.com अपने स्वयं के एपीआई का ग्राहक बन गया। यह मोबाइल साइट, iPhone, iPad, Android और अन्य तृतीय-पक्ष अनुप्रयोगों के लिए उसी तरह से डेटा पुनर्प्राप्त करता है। इस परिवर्तन ने एपीआई टीम को अधिक संसाधनों को आवंटित करने की अनुमति दी, जिसने 40 से अधिक सुधार पेश किए। पृष्ठ की प्रारंभिक लोडिंग और हर बार ग्राहकों तक पहुँचने पर, सभी डेटा को अत्यधिक अनुकूलित JSON कैश से पुनर्प्राप्त किया जाता है।



जावास्क्रिप्ट एपीआई


जावास्क्रिप्ट लाइब्रेरी को ट्विटर रीस्ट एपीआई @ डैनियरे तक पहुंचने के लिए विकसित किया गया था, जो पूरे प्रोजेक्ट के विकास के लिए एक अच्छा शुरुआती बिंदु था। Javascript API क्लाइंट मेमोरी पर डेटा निकालने और चतुराई से एक साथ मेमोरी और लोकलस्टोरेज में फ़ंक्शंस प्रदान करता है, जो Twitter.com का उपयोग करते समय किए जाने वाले नेटवर्क अनुरोधों की संख्या को कम करता है। उदाहरण के लिए, कुछ समय के लिए प्रत्येक ट्वीट अनुरोध में संबंधित उपयोगकर्ता डेटा होता है। नतीजतन, उपयोगकर्ता ऑब्जेक्ट सक्रिय रूप से कैश हो जाते हैं, और जब एक प्रोफ़ाइल देखते हैं, तो इसके अतिरिक्त उपयोगकर्ता डेटा का अनुरोध करना आवश्यक नहीं है।

जावास्क्रिप्ट एपीआई की एक और विशेषता यह है कि यह प्रत्येक एपीआई कॉल से पहले और बाद में घटना की सूचनाएं प्रदान करता है। यह आपको बदलते घटकों को पंजीकृत करने, तुरंत जवाब देने और उपयोगकर्ता इंटरफ़ेस में उचित परिवर्तन करने की अनुमति देता है, एक ही समय में एक ही डेटा के आधार पर अपरिवर्तनीय घटकों को प्रभावित किए बिना।



पेज प्रबंधन


प्रोजेक्ट का एक लक्ष्य पेज नेविगेशन को आसान और तेज़ बनाना था। संबंधित दस्तावेजों के पारंपरिक वेब सादृश्य के आधार पर, एप्लिकेशन एक पेज रूटिंग सिस्टम का उपयोग करता है जो URL और उनकी सामग्री के बीच एक करीबी लिंक प्रदान करता है। यह अमीर वेब एप्लिकेशन (RIA) को नियमित वेबसाइटों की तरह व्यवहार करने की अनुमति देता है। इस संबंध में, एक "अमीर" क्लाइंट रूटिंग मॉडल विकसित करना आवश्यक था। ऐसा करने के लिए, एक रूटिंग सिस्टम को URL हैश द्वारा नियंत्रित, बदलते पृष्ठों के बीच स्विच करने के लिए डिज़ाइन किया गया था। जब कोई उपयोगकर्ता पृष्ठों के माध्यम से नेविगेट करता है, तो एप्लिकेशन कैश मेमोरी में पृष्ठों का दौरा करता है। इन पृष्ठों पर जानकारी के तेजी से अप्रचलन के साथ समस्या को एक तंत्र का उपयोग करके हल किया गया था जो पृष्ठों को जावास्क्रिप्ट एपीआई के माध्यम से घटनाओं के बारे में प्रासंगिक जानकारी प्राप्त करने की अनुमति देता है, जिससे उन्हें आवेदन की सामान्य स्थिति के साथ सिंक्रनाइज़ किया जाता है।



रेंडरिंग स्टैक


जावास्क्रिप्ट के बिना खोज रोबोट और उपयोगकर्ताओं का समर्थन करने के लिए, यह आवश्यक था कि रेंडरिंग सिस्टम क्लाइंट और सर्वर दोनों तरफ काम करे। इसके लिए, एक रेंडरिंग स्टैक बनाया गया था और एक ऑब्जेक्ट देखने की प्रणाली विकसित की गई थी जो एपीआई वस्तुओं से HTML टुकड़े उत्पन्न करता है। विभिन्न भाषाओं में स्ट्रिंग प्रतिस्थापन के समर्थन के लिए इंजन का विस्तार भी किया गया है।

DOM में काम के अनुकूलन पर बहुत ध्यान दिया गया। उदाहरण के लिए, घटना के प्रतिनिधिमंडल को सभी दिशाओं में लागू किया गया था, जो नेस्टेड घटनाओं के बारे में चिंता किए बिना कम मेमोरी का उपयोग करने की अनुमति देता था। हमारे अधिकांश इंटरफेस पुन: प्रयोज्य घटकों से निर्मित होते हैं, इसलिए घटना प्रसंस्करण को केंद्रीकृत किया गया और कई रूट नोड्स को सौंप दिया गया। HTML संरचनाओं के निर्माण के दौरान redraws की संख्या भी कम से कम लागू होने से पहले और HTML पृष्ठों को रेंडर करने के चरण में प्रासंगिक डेटा के साथ जोड़ दी गई थी, और DOM मैनिपुलेशन का उपयोग नहीं किया गया था।



मीडिया एकीकरण


नए इंजन का सबसे महत्वपूर्ण कार्य हमारे सामग्री भागीदारों में से एक के लिए एक ट्वीट लिंक का उपयोग करके सीधे साइट पर तीसरे पक्ष की सामग्री को एम्बेड करने की क्षमता है। उनमें से अधिकांश के लिए, जैसे किवा या वीमो, ओमेबेड मानक का उपयोग किया गया था, जो सामग्री प्रदाता के डोमेन के लिए JSON-P अनुरोध करना और अनुरोध के जवाब में प्राप्त होने वाली सामग्री को एम्बेड करना आसान बनाता है। अन्य मीडिया पार्टनर, जैसे कि ट्वाइटपिक और यूट्यूब, ने उन संसाधनों को एम्बेड करने के लिए प्रसिद्ध तंत्र का उपयोग किया है जो यूआरएल से प्राप्त किए जा सकते हैं, जिससे नेटवर्क लोड कम होता है और समग्र त्वरण प्रदान होता है।



खुला स्रोत


ट्विटर ने हमेशा ओपन-सोर्स तकनीक को चुना है और नए क्लाइंट में परंपरा को जारी रखा गया है। JQuery, मूंछ, LABjs, मॉडर्निज़र और कई अन्य ओपन-सोर्स स्क्रिप्ट और प्लगइन्स jQuery के विकास में उपयोग किए गए थे। डेवलपर्स इन पुस्तकालयों के लेखकों और जावास्क्रिप्ट समुदाय के कई अन्य लोगों के लिए खुले जावास्क्रिप्ट कोड लिखने के प्रयासों के लिए बहुत आभारी हैं। हमें उम्मीद है कि ट्विटर पर यहां विकसित करने के दौरान नवाचारों को पेश करने के बाद, हम उनमें से कई को अपनी स्वयं की प्रौद्योगिकियों द्वारा समर्थित ओपन सोर्स समुदाय में वापस लाने में सक्षम होंगे।



All Articles