2012-05-15 26 views
6
<!—Firefox Prefetching --> 
<link rel="prefetch" href="http://www.example.com/page2.html"> 

<!—Chrome Prefetching --> 
<link rel="prerender" href="http://www.example.com/page2.html"> 

यदि मेरे पास पृष्ठ पर जावास्क्रिप्ट को प्रीरेंडर/प्रीफेच (जैसे Google Analytics JS) है, तो क्या प्रीरेंडर/प्रीफेच पृष्ठ पर जावास्क्रिप्ट निष्पादित करेगा? या जब तक कि उपयोगकर्ता वास्तव में उपयोगकर्ता द्वारा अनुरोध नहीं किया जाता है, तब तक यह जेएस के निष्पादन में देरी करता है?रिला प्रीरेंडर/प्रीफेच, क्या यह जेएस निष्पादित करता है?

+0

बस कुछ और शोध किया और खुद को प्रश्न का उत्तर दिया, और यह ध्यान रखना दिलचस्प है कि प्रीफेच और प्रीरेंडर एक दूसरे के साथ काफी भिन्न व्यवहार करते हैं। –

उत्तर

7

मैं सिर्फ इस पर कुछ अधिक शोध किया है:

Prefetch शीर्ष स्तर संसाधन जो अक्सर बस HTML पृष्ठ लोड हो जाएगा

Prerender रूप में अच्छी तरह बच्चे तत्वों लायेगा, और जावास्क्रिप्ट कोड निष्पादित करेंगे । पृष्ठ दृश्यता API का उपयोग करके हम लोड किए गए पृष्ठ की वर्तमान दृश्यता स्थिति निर्धारित कर सकते हैं।

तो उत्तर हाँ है, यह तब तक जेएस निष्पादित करेगा जब तक उपयोगकर्ता क्रोम पर नहीं है और प्रीरेंडर का उपयोग किया जा रहा है। साथ ही, Google Analytics का वर्तमान संस्करण पृष्ठ दृश्यता API का पूरा उपयोग करता है, इसलिए आंकड़े खराब नहीं होंगे, हालांकि संभवतः जंगली में बहुत सारे कोड हैं जिनके आंकड़े प्रीरेंडरिंग के मामलों को सही तरीके से संभालने से नहीं हैं।

+0

दरअसल, वे उद्देश्य से अलग-अलग आदेश हैं। 'prefetch' का उपयोग उन संसाधनों पर किया जा सकता है जिन्हें आप प्रीफ़ेच करना चाहते हैं (एक स्क्रिप्ट, एक छवि, एक HTML फ़ाइल, जो भी हो), जबकि' प्रीरेंडर 'एक पूर्ण पृष्ठ को पूर्व-प्रस्तुत करने के लिए है जिसे आप (उम्मीदपूर्वक) जानते हैं कि अत्यधिक देखी जाने की संभावना है अगले, और बहुत जल्द, आपके उपयोगकर्ता द्वारा। उदाहरण के लिए आपके फोरम के लिए लॉगिन पेज, या ऐसा कुछ हो सकता है। 'prefetch' क्रोम, एफएफ, यानी किनारे द्वारा समर्थित है। 'prerender' क्रोम, यानी किनारे द्वारा समर्थित है। (हालांकि अद्यतित समर्थन के लिए caniuse.com की जांच करें ...) – Svish

+0

क्या आपके पास Google का आधिकारिक स्रोत है जो कहता है कि Google Analytics जानता है कि प्रीफेच हिट को कैसे नजरअंदाज करना है? – Flimm

1

नहीं, फ़ाइल को कैश करने के लिए प्रीफेचिंग, यह जावास्क्रिप्ट को निष्पादित नहीं करता है।

जैसा कि मुझे पता है कि analytics.js अनुरोध करते समय वेबसाइट का विश्लेषण नहीं करता है। जब यह जावास्क्रिप्ट निष्पादित होता है तो यह काम करता है। जब ब्राउज़र prefetch (अनुरोध) analytics.js फ़ाइल है जिसका अर्थ यह नहीं है कि analytics.js फ़ाइल निष्पादित की गई है। इसलिए आपकी वेबसाइट का Google Analytics डेटा प्रीफेचिंग विधि से प्रभावित नहीं होगा जब तक कि पृष्ठ वास्तव में उपयोगकर्ता द्वारा अनुरोध नहीं किया जाता है।

1

विषय the spec मूक है और बस पर राज्यों:

प्रीफ़ेच कीवर्ड इंगित करता है कि preemptively प्राप्त करने में कठिनाई और कैशिंग निर्दिष्ट संसाधन, लाभकारी होने की संभावना है के रूप में यह अत्यधिक संभावना है कि उपयोगकर्ता की आवश्यकता होगी यह संसाधन

इस से हम कह सकते हैं कि प्रीफ़ेच पन्नों में जे एस के निष्पादन अपरिभाषित है।

क्या ब्राउज़र विक्रेता प्रीफेच किए गए पृष्ठों में जेएस निष्पादित करने में लाभ देखता है विक्रेता को नीचे है।

+0

मुझे पता चला है कि प्रीफेच केवल शीर्ष स्तर तत्व लोड करता है, प्रीरेंडर हालांकि सभी बाल तत्व लाएगा और जेएस निष्पादित करेगा। –