2011-02-10 9 views
8

Google आपके एचटीएमएल में एनालिटिक्स एसिंक्रोनस ट्रैकिंग कोड से पहले जेएस स्क्रिप्ट डालने की सिफारिश क्यों करता है?Google <head> में * स्क्रिप्ट के बाद Analytics एसिंक्रोनस कोड * डालने की अनुशंसा क्यों करता है?

"ध्यान दें:: अन्य लिपियों, हम अनुशंसा करते आप इन तरीकों में से एक में अपने साइट की अन्य स्क्रिप्ट्स जगह के संबंध में स्निपेट का सबसे सुव्यवस्थित संचालन को सुनिश्चित करने के लिए http://code.google.com/apis/analytics/docs/tracking/asyncMigrationExamples.html

यहाँ उद्धरण है: अपने HTML "

उत्तर

4

एसिंक्रोनस एनालिटिक्स स्निपेट का काम एक और गहन स्क्रिप्ट लोड करना है जो उपयोगकर्ता के ब्राउज़र को सभी प्रकार की जानकारी के लिए उनकी पहचान करने का निरीक्षण करता है, इसलिए यह विश्लेषिकी सर्वर पर वापस रिपोर्ट कर सकता है। हालांकि, चूंकि यह सभी एनालिटिक्स डेटा पृष्ठ की उपयोगिता के लिए महत्वपूर्ण नहीं है, इसलिए Google इसे ब्राउज़र की सुविधा पर चलाने की इच्छा रखता है।

सिद्धांत रूप में, वे प्रोग्रामर को पृष्ठ के बहुत नीचे, शरीर के अंतिम तत्व के रूप में एसिंक्रोनस स्निपेट जोड़ने की सलाह दे सकते हैं। हालांकि, प्रोग्रामर को एनालिटिक्स भेजने के लिए यूआई घटनाओं को कैप्चर करने की अनुमति देने के लिए, वे _gaq वैरिएबल को जल्दी उपयोग के लिए बनाना चाहते हैं। उदाहरण के लिए, आपके पास एक बटन हो सकता है: <button onclick="_gaq.push(...)">Track</button>_gaq को प्रारंभ में उपलब्ध करके, एसिंक्रोनस स्निपेट में कोड का छोटा सा हिस्सा इन संदेशों को कतारबद्ध करेगा और भारी ga.js उन्हें बाद में सर्वर पर भेज देगा।

अब, कुछ implementation details: ga.jsasync विशेषता निर्धारित साथ दस्तावेज़ के शीर्ष के लिए एक नया <script> तत्व जोड़कर भरी हुई है। आईई और वेबकिट स्क्रिप्ट से डाले गए <script> टैग असीमित रूप से लोड करेंगे। फ़ायरफ़ॉक्स और ओपेरा async विशेषता का सम्मान करेंगे और स्क्रिप्ट को असीमित रूप से लोड करेंगे। किसी भी तरह से, ga.js ब्राउज़र की सुविधा पर, असीमित रूप से लोड किया गया है।

अंत में, एक बार ga.js अतुल्यकालिक लोडिंग की वजह से क्रियान्वित किया जाता है पृष्ठ प्रतिपादन को रोके बिना, यह _gaq कतार में उपयोगकर्ता के डाटा और किसी भी गए संदेशों के सभी एकत्रित करने की भारी काम करते हैं और उन्हें सर्वर से भेज सकते हैं।

सारांश: यह दृष्टिकोण एक छोटे इनलाइन स्क्रिप्ट कि _gaq से पहले पूर्ण ga.js स्क्रिप्ट तैयार है अपने पृष्ठ तक पहुँच सकते हैं जैसे कुछ प्रमुख कारकों के initializes उपयोग करता है। यह छोटी स्क्रिप्ट भी गतिशील रूप से दस्तावेज़ में <script src="ga.js"> टैग जोड़ती है ताकि अधिकांश ब्राउज़र पृष्ठ के प्रतिपादन को अवरुद्ध किए बिना या महत्वपूर्ण स्क्रिप्ट के मूल्यांकन को अवरुद्ध किए बिना इसे असीमित रूप से डाउनलोड और निष्पादित कर सकें।

+0

मैंने वास्तव में शुरुआत में इस प्रतिक्रिया को कम किया लेकिन इसे फिर से पढ़ने और फिर से पढ़ने के बाद यह समझ में आता है ... यह वह हिस्सा था जो मेरे लिए प्रकाश बल्ब को बंद कर देता था ... "आखिरकार, एक बार ga.js को निष्पादित किए बिना, निष्पादित किए बिना एसिंक्रोनस लोडिंग के कारण पृष्ठ प्रतिपादन, यह उपयोगकर्ता के सभी डेटा एकत्र करने और _gaq कतार में किसी भी संदेश को एकत्र करने का भारी काम कर सकता है और उन्हें सर्वर पर भेज सकता है "... इसलिए मैं मूल रूप से यदि आप स्क्रिप्ट डालते हैं पृष्ठ के निचले हिस्से में, आप Google से कह रहे हैं कि आपको पृष्ठ के बाद लोड होने वाली स्क्रिप्ट को कोई फर्क नहीं पड़ता है, इसलिए आगे बढ़ें और उनके सामने विश्लेषण भी लोड करें! – concept47

2

ब्राउज़र के रूप में के अनुभाग में ट्रैकिंग कोड स्निपेट के पहले पृष्ठ को लोड करता है, यह ऊपर से नीचे तक ऐसा नहीं करता है। ब्राउज़र में सीमित संख्या में "कनेक्शन" होते हैं जो बाहरी रूप से जुड़े दस्तावेज़ों को लोड करने के लिए उपयोग कर सकते हैं। यदि आप अपनी स्क्रिप्ट को अपने ऊपर रखते हैं, तो आपकी अपनी स्क्रिप्ट तब तक लोड नहीं हो सकती जब तक कि उनका पूरा न हो जाए। विश्लेषणात्मक कोड पृष्ठ की कार्यक्षमता के लिए महत्वपूर्ण नहीं है, इसलिए हम इसे अंतिम के लिए सहेज सकते हैं।

+0

लेकिन Google अपने सर्वरों की निर्भरता को टाउट करता है, जहां तक ​​यह सलाह दी जाती है कि उपयोगकर्ता स्थानीय रूप से ga.js की सेवा नहीं करते हैं, क्योंकि इसकी अनुकूलित और संभवतः उपयोगकर्ता के ब्राउज़र में दुनिया भर में कैश किया गया है ... यह समझ में नहीं आता है मुझे यह मामला होगा, खासकर जब यह समानांतर में लोड होता है और अन्य स्क्रिप्ट की तरह अवरुद्ध नहीं होता है। – concept47

+0

"समानांतर" अवधारणा थ्रेड की संख्या से सीमित है जो एक ब्राउज़र लिंक की गई फ़ाइलों के लिए असीमित अनुरोधों को समर्पित कर सकता है। फ़ायरफ़ॉक्स, आईआईआरसी, 6 पर capped है।कोई फर्क नहीं पड़ता कि Google का सर्वर कितना तेज़ है, यह अभी भी सीमित है (इस मामले में) क्लाइंट कनेक्शन की गति से क्योंकि उनका ब्राउज़र पृष्ठ और सभी संबंधित दस्तावेज़ लोड करता है। तो आइए मान लें कि उपयोगकर्ता के पास डायल-अप है - आप अपनी स्क्रिप्ट को Google Analytics से पहले लोड करना चाहते हैं, क्योंकि आपकी स्क्रिप्ट ** ** उपयोगिता को प्रभावित कर सकती है और Google की ** निश्चित रूप से ** नहीं है, और यह ** मिनट ** हो सकती है अगला asynch धागा खुला है। –

+0

^यदि ऐसा है तो यह क्यों अनुशंसा करता है (उसी लिंक में) कि आपने इन स्क्रिप्ट को "* बाद * ट्रैकिंग कोड स्निपेट और सभी पृष्ठ सामग्री (जैसे HTML निकाय के नीचे)" रखा है? – concept47

संबंधित मुद्दे