2011-06-26 16 views
19

मैं हमेशा उपयोगकर्ता को नवीनतम वेबसाइट सामग्री प्रस्तुत करना चाहता हूं लेकिन इसे तेज़ लोड भी करना चाहता हूं। शोध करके मैं पोस्टिंग में आया था जो लोग लोडिंग को तेज करने के लिए कैश का उपयोग करने का सुझाव देते थे।एचटीएमएल - कैश कंट्रोल अधिकतम आयु

तो नवीनतम सामग्री को प्रदर्शित करने के लिए 3 दिनों के बाद कैश को "ओवरराइट" करने के लिए मुझे अपनी वेबसाइट में जोड़ने की क्या ज़रूरत है?

+1

क्या आप वर्डप्रेस का उपयोग करते हैं? Drupal? क्या आपके पास डेटाबेस है? कैशिंग को कट और सूखा नहीं है जैसा कि आपको लगता है कि यह है ... – Trey

+0

क्षमा करें। मैं एक सीएमएस के बिना एक साधारण PHP वेबसाइट का उपयोग कर रहा हूँ। – Uli

उत्तर

11

ऐसा करने के एक से अधिक तरीके हैं - लेकिन आपको यह समझने की ज़रूरत है कि आपको कैश करने की क्या ज़रूरत है और आप क्या नहीं करते हैं। सबसे बड़ी गति वृद्धि संभवतः यह सुनिश्चित करने से आती है कि आपकी संपत्ति (सीएसएस, छवियों, जावास्क्रिप्ट) को HTML के बजाय कैश किया गया हो। इसके बाद आपको विभिन्न कारकों को देखने की आवश्यकता है (ये संपत्ति कितनी बार बदलती है, आप उपयोगकर्ता को फ़ाइल के नए संस्करण को डाउनलोड करने के लिए कैसे मजबूर करेंगे?)।

अक्सर साइट रिलीज प्रक्रिया के हिस्से के रूप में, नई फाइलें (अपडेट की गई फाइलें) को एक नया फ़ाइल नाम दिया जाता है ताकि उपयोगकर्ता ब्राउज़र को फ़ाइल को फिर से लोड करने के लिए मजबूर किया जा सके, लेकिन यह केवल एक दृष्टिकोण है।

आपको apache mod_expire, और .htaccess फ़ाइल का उपयोग कर संपत्तियों के लिए समाप्ति समय निर्धारित करने की क्षमता लेनी चाहिए।

http://www.google.com/?q=apache+cache+control+htaccess#q=apache+cache+control+htaccess

+0

क्या मैं सही ढंग से समझता हूं कि मुझे इस कोड को अपने सर्वर में जोड़ने की आवश्यकता है। Htaccess फ़ाइल कैशिंग फ़ाइलों को 3 दिनों के लिए अनुमति देने के लिए? '# 3 दिन हैडर सेट कैश-कंट्रोल" अधिकतम आयु = 259200, प्रॉक्सी-रीडालिडेट " 'उस 3 दिनों के बाद' सभी को पुनः लोड किया जाएगा, है ना? स्रोत: http://www.askapache.com/htaccess/apache-speed-cache-control.html – Uli

+0

उत्तर मानता है कि मैं अपाचे का उपयोग सर्वर के रूप में कर रहा हूं, अगर मैं रूबी एप्लिकेशन का उपयोग कर रहा हूं यह काम नहीं करेगा – Joseph

+0

एचटीएमएल में कैश हेडर सेट करने और अपने पसंदीदा प्रोग्रामिंग भाषा के लिए स्पष्ट स्पष्टीकरण के साथ एक ब्लॉग पोस्ट यहां है http://docs.fastly.com/guides/22951283/26628787 – Joseph

0

अनुसार YSlow recommendations आप प्रतिक्रिया है जो उपयोगकर्ता एजेंट निर्दिष्ट अवधि के लिए प्रतिसाद ग्रहण में परिणाम होगा करने के लिए एक Expires या एक Cache-Control HTTP शीर्ष लेख जोड़ने के लिए अपने वेब सर्वर को कॉन्फ़िगर कर सकते हैं।

1

जैसा कि बताया जा समाप्त हो रहा है और कैश-नियंत्रण हेडर आमतौर पर सबसे अच्छा तरीका जानकारी जीवन के बारे में जानकारी शामिल करने के लिए कर रहे हैं।

क्योंकि क्लाइंट इन सूचनाओं को समझने पर बहुत विश्वसनीय नहीं हैं क्योंकि स्किड, वार्निश या ऐसे समाधान जैसे कैशिंग क्षमताओं को अधिकांश लोगों द्वारा पसंद किया जाता है। आपको यह भी विचार करने की आवश्यकता है कि क्या आप केवल स्थिर सामग्री (जैसे छवियों, स्टाइलशीट्स, ..) या गतिशील रूप से जेनरेट की गई सामग्री को कैश करना चाहते हैं।

15

कैश के नियंत्रण को नियंत्रित करने के लिए कैश-कंट्रोल हेडर HTTP 1.1 में उपयोग किया जाता है। अधिकतम आयु निर्देश का उपयोग सामग्री की अधिकतम आयु को स्थिर होने से पहले (सेकेंड में) निर्दिष्ट करने के लिए किया जाता है (यानी, सामग्री कुछ समय के लिए नहीं बदलेगी)।

Cache-Control: max-age=259200 

(259200 = 60 के दशक एक्स 60m x 24 घंटों एक्स 3 डी)

कि ऐसा करने के लिए: तो अगर आप जानते हैं कि आपकी सामग्री 3 दिनों के लिए परिवर्तन नहीं होगा, आप अपने सर्वर निम्नलिखित HTTP शीर्ष लेख जोड़ना चाहते हैं PHP में, अपने उत्पादन को यह पंक्ति जोड़ें:

header('Cache-Control: max-age=259200'); 

यहाँ हैडर समारोह के बारे में अधिक जानकारी के लिए पढ़ें:

+1

आईआईएस के लिए आप इसे सेट कर सकते हैं प्रारूप '[-] [डी।] एचएच: मिमी: एसएस [.ff]' का उपयोग कर web.config में स्थैतिक सामग्री (गतिशील सामग्री को गतिशील रखना)। इसे 'system.web सर्वर>

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