2016-07-26 5 views
9

एक JSON एपीआई endpoint /api/config देखते हुए, हम एक HTML दस्तावेज़ के शीर्ष में <link rel="prefetch" href="/api/config"> उपयोग करने के लिए कोशिश कर रहे हैं। क्रोम एचटीएमएल में लिंक टैग हिट करते समय अपेक्षित डेटा डाउनलोड करता है, लेकिन दूसरी बार बाद में हमारी स्क्रिप्ट से XHR के माध्यम से अनुरोध करता है।बाद में XHR अनुरोध के लिए JSON API प्रतिक्रिया को कैश करने के लिए प्रीफेच का उपयोग किया जा सकता है?

सर्वर कैशिंग अनुमति देने के लिए कॉन्फ़िगर किया गया है, और शीर्षक में Cache-Control: "max-age=3600, must-revalidate" साथ दे रहा है। जब क्रोम डेटा को दोबारा अनुरोध करता है, तो सर्वर 304 संशोधित स्थिति के साथ सही ढंग से प्रतिक्रिया देता है।

उपयोग का मामला यह है: XHR (एक कोणीय जेएस संकल्प, यदि यह प्रासंगिक है) का उपयोग कर हमारे एकल पृष्ठ एप्लिकेशन में कॉन्फ़िगरेशन एंडपॉइंट से हमेशा जावास्क्रिप्ट से अनुरोध किया जाएगा। हालांकि, हमारी स्क्रिप्ट बहुत बड़ी हैं और पार्स करने में काफी समय लगती है, इसलिए पार्सिंग समाप्त होने तक JSON कॉन्फ़िगरेशन से अनुरोध नहीं किया जाएगा। प्रीफेचिंग हमें एपीआई एंडपॉइंट्स से प्रतिक्रियाओं को लाने और कैश करने के लिए उस पार्सिंग समय का उपयोग करने की अनुमति देगा जो अन्यथा स्क्रिप्ट लोड होने की प्रतीक्षा करनी होगी।

उत्तर

0

MDN से:

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

IMO, उपयोगकर्ता के लिए प्रीफेचिंग डेटा, इससे पहले कि वह अपने भविष्य के नेविगेशन में इसकी आवश्यकता काफी समान एक छवि prefetch करने के लिए इससे पहले कि वह यह संचालन करता है।

एक और दृष्टिकोण वेब worker के साथ किया जा सकता है, जो समानांतर धागे में डेटा लाता है।

0

हाँ आप JSON Read here पहले से लोड करने में सक्षम होना चाहिए।

fetch: एक fetch या XHR अनुरोध, जैसे कि ऐरेबफर या JSON फ़ाइल द्वारा उपयोग किया जाने वाला संसाधन।

<link rel="preload" href="/api/config" as="fetch"> 
:

तो इस वाक्य रचना की कोशिश

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

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