मैं एक वेब पेज है कि निम्नलिखित हैडर लौटाता है जब मैं सामग्री का उपयोग किया है में "कैश-नियंत्रण" मूल्यों ओवरराइड:HTTP उत्तर
HTTP/1.1 200 OK
Date: Sat, 29 Jun 2013 15:57:25 GMT
Server: Apache
Content-Length: 2247515
Cache-Control: no-cache, no-store, must-revalidate, max-age=-1
Pragma: no-cache, no-store
Expires: -1
Connection: close
एक क्रोम एक्सटेंशन का उपयोग करना, मैं इतना है कि इस response header
संशोधित करना चाहते हैं सामग्री वास्तव में बैंडविड्थ बर्बाद करने के बजाय कैश किया जाता है।
मैं निम्न नमूना कोड है:
chrome.webRequest.onHeadersReceived.addListener(function(details)
{
// Delete the required elements
removeHeader(details.responseHeaders, 'pragma');
removeHeader(details.responseHeaders, 'expires');
// Modify cache-control
updateHeader(details.responseHeaders, 'cache-control', 'max-age=3600;')
console.log(details.url);
console.log(details.responseHeaders);
return{responseHeaders: details.responseHeaders};
},
{urls: ["<all_urls>"]}, ['blocking', 'responseHeaders']
);
कौन सा सही ढंग से कुछ इस तरह (console.log() उत्पादन के आधार पर) के लिए शीर्ष लेख को संशोधित करता है:
HTTP/1.1 200 OK
Date: Sat, 29 Jun 2013 15:57:25 GMT
Server: Apache
Content-Length: 2247515
Cache-Control: max-age=3600
Connection: close
लेकिन सब कुछ के आधार पर मैंने इसे जांचने की कोशिश की है, मुझे यह सबूत नहीं दिख रहा है कि यह वास्तव में हुआ है:
cache
में इस फ़ाइल के लिए कोई प्रविष्टि नहीं हैNetwork
Developer Console
में टैब HTTP प्रतिक्रिया के लिए कोई बदलाव नहीं दिखाता है (मैंने इसे सुनिश्चित करने के लिए केवल मामूली संशोधन में बदलने की कोशिश की है कि यह कोई त्रुटि नहीं है, लेकिन अभी भी कोई बदलाव नहीं)।
केवल वास्तविक संकेत मैं पा सकते हैं जिससे पता चलता है कि मेरे दृष्टिकोण अभी भी काम करता है और webRequest API documentation पर इस पैरा जो लेकिन पता चलता है कि इस काम नहीं करेगा (व्याख्या नहीं करता है कारण है कि मैं किसी भी परिवर्तन नहीं कर सकते हैं जो भी हो):
ध्यान दें कि वेब अनुरोध एपीआई नेटवर्क विस्तार के लिए स्टैक का एक अमूर्त प्रस्तुत करता है। आंतरिक रूप से, एक यूआरएल अनुरोध में कई HTTP अनुरोधों में विभाजित किया जा सकता है (उदाहरण के लिए व्यक्तिगत बाइट श्रेणियों को को बड़ी फ़ाइल से लाने के लिए) या नेटवर्क के साथ संचारित के बिना नेटवर्क स्टैक द्वारा संभाला जा सकता है। इस कारण से, एपीआई नेटवर्क पर भेजे गए अंतिम HTTP शीर्षलेख प्रदान नहीं करता है। उदाहरण के लिए, कैशिंग से संबंधित सभी शीर्षलेख एक्सटेंशन के लिए अदृश्य हैं।
कुछ भी काम नहीं कर रहा है (मैं HTTP response header
को बिल्कुल संशोधित नहीं कर सकता) इसलिए मुझे लगता है कि यह मेरी पहली चिंता है।
कोई सुझाव जहां मैं गलत हो रहा था या यहां क्या गलत हो रहा है यह जानने के लिए कैसे जाना है?
यदि यह संभव नहीं है, तो क्या हासिल करने का प्रयास करने के लिए कोई और तरीका है?
दुर्भाग्य से मैं क्या उम्मीद कर रहा था ... क्या आप इन फ़ाइलों को कैश करने के लिए मजबूर करने के किसी भी अन्य तरीके से जानते हैं?मुझे प्रॉक्सी सर्वर जैसे 'स्क्विड' मिल गए हैं, लेकिन वे मेरे सिस्टम पर नेटवर्क के साथ बहुत सी चीजों की तरह लग रहे हैं, बस एक विशिष्ट साइट –
@ बीटी से फ़ाइलों को कैश करने के लिए अपनी पसंदीदा प्रॉक्सी चुनें जो सही हेडर जोड़ता है, और [क्रोम .proxy'] (https://developer.chrome.com/extensions/proxy.html) एपीआई आपके प्रॉक्सी के माध्यम से उस विशिष्ट साइट को रूट करने के लिए। –
वास्तविक शर्म की बात है कि आप एक्सटेंशन से कैशिंग को संशोधित नहीं कर सकते हैं। अगर आप कर सकते हैं तो यह बहुत उपयोगी होगा। –