मैं HTML5 का उपयोग कर एक छोटे से एकल पृष्ठ एप्लिकेशन पर काम कर रहा हूं। एक विशेषता पृष्ठ में एम्बेडेड पीडीएफ दस्तावेज़ों को दिखाने के लिए है, जो दस्तावेजों को एक सूची के रूप में चुना जा सकता है।क्रोम इन दो परिदृश्यों में क्लाइंट कैश का अलग-अलग उपयोग क्यों करता है?
नहीं, मैं क्रोम (पहले, और फिर अन्य सभी आधुनिक ब्राउज़रों) को स्थानीय क्लाइंट कैश का उपयोग करने के लिए सर्वर के माध्यम से बिना पीडीएफ दस्तावेजों के लिए सरल जीईटी अनुरोध पूरा करने की कोशिश कर रहा हूं (पाठ्यक्रम के पहले समय के अलावा))। मैं HTML में <object>
तत्व पर "डेटा" संपत्ति सेट करके पीडीएफ फ़ाइल का अनुरोध करने का कारण बनता हूं।
मुझे working example for XMLHttpRequest (<object>
नहीं मिला) मिला है। यदि आप Chrome की डेवलपर उपकरण (नेटवर्क टैब) का उपयोग करते हैं जैसा कि आप देख सकते हैं कि पहले अनुरोध सर्वर को जाता है, और इन हेडर के साथ एक प्रतिक्रिया में परिणाम:
Cache-Control:public,Public
Content-Encoding:gzip
Content-Length:130
Content-Type:text/plain; charset=utf-8
Date:Tue, 03 Jul 2012 20:34:15 GMT
Expires:Tue, 03 Jul 2012 20:35:15 GMT
Last-Modified:Tue, 03 Jul 2012 20:34:15 GMT
Server:Microsoft-IIS/7.5
Vary:Accept-Encoding
दूसरा अनुरोध स्थानीय कैश से किसी भी सर्वर के बिना पेश किया जाता है roundtrip, जो मैं चाहता हूँ।
मेरे अपने आवेदन में वापस, मैं तो एएसपी-NET इस्तेमाल किया MVC 4 और मेरे नियंत्रक पर
[OutputCache(Duration=60)]
निर्धारित किया है। इस नियंत्रक करने के लिए पहले अनुरोध - यूआरएल के साथ http://localhost:63035/?doi=10.1155/2007/98732
परिणाम निम्न हेडर में:
Cache-Control:public, max-age=60, s-maxage=0
Content-Length:238727
Content-Type:application/pdf
Date:Tue, 03 Jul 2012 20:45:08 GMT
Expires:Tue, 03 Jul 2012 20:46:06 GMT
Last-Modified:Tue, 03 Jul 2012 20:45:06 GMT
Server:Microsoft-IIS/8.0
Vary:*
सर्वर से एक और गोल यात्रा में दूसरा अनुरोध परिणाम, एक बहुत जल्दी प्रतिक्रिया के साथ (सुझाव सर्वर-साइड संचय?), लेकिन 200 रिटर्न ठीक है और इन हेडर:
Cache-Control:public, max-age=53, s-maxage=0
Content-Length:238727
Content-Type:application/pdf
Date:Tue, 03 Jul 2012 20:45:13 GMT
Expires:Tue, 03 Jul 2012 20:46:06 GMT
Last-Modified:Tue, 03 Jul 2012 20:45:06 GMT
Server:Microsoft-IIS/8.0
Vary:*
अभी तक एक और गोल यात्रा में उसी यूआरएल परिणामों के लिए तीसरे अनुरोध और इन हेडर के साथ एक 304 प्रतिक्रिया:
Cache-Control:public, max-age=33, s-maxage=0
Date:Tue, 03 Jul 2012 20:45:33 GMT
Expires:Tue, 03 Jul 2012 20:46:06 GMT
Last-Modified:Tue, 03 Jul 2012 20:45:06 GMT
Server:Microsoft-IIS/8.0
Vary:*
मेरा प्रश्न है, वांछित व्यवहार प्राप्त करने के लिए मुझे आउटपुट कैश विशेषता कैसे सेट करनी चाहिए (यानी। शुरुआती अनुरोध के एक्स सेकंड के भीतर, ग्राहक कैश से पूर्ण पीडीएफ अनुरोध)?
या, क्या मैं सही तरीके से काम नहीं कर रहा हूं जब मैं <object>
तत्व पर "डेटा" संपत्ति सेट करके पीडीएफ प्रदर्शित करने का कारण बनता हूं?
बिल्कुल नहीं। क्लाइंट को स्थान सेट करना (HTTP कैश-कंट्रोल हेडर में "निजी" के समतुल्य) साझा कैश स्थानों को कैश करने के लिए नहीं बताता है। लेकिन यह प्रभावित नहीं करना चाहिए कि क्लाइंट ब्राउज़र इसे कैश करने का फैसला करता है या नहीं। – ToolmakerSteve