दिलचस्प पोस्ट
`से … आयात करें 'बनाम आयात करें। टुकड़ों के बीच डेटा कैसे पास करें mysql_real_escape_string वी.एस. जोड़ता है कौन सा ब्राउज़र <async = "async" /> का समर्थन करता है? उपयोगकर्ता नाम और पासवर्ड के साथ कर्ल का उपयोग करना? कोको में XML को पार्स करना नेटेंट में एक स्थिर तरीके से कीवर्ड 'इस' का प्रयोग क्यों नहीं किया जा सकता? एक क्वेरी में एएनएसआई 1992 के जॉन्स और कमांड्स को मिलाते हुए मैं गतिशील रूप से ऊँचाई div में कैसे केंद्र को खड़ी कर सकता / सकती हूं? निर्दिष्ट शाखा के बिना "git push" का डिफ़ॉल्ट व्यवहार रूबी में सिंगलटन क्लास बिल्कुल क्या है? मैं Xvfb में सेलेनियम कैसे चलाऊँ? सी ++: कॉन्स्ट संदर्भ, टाइप-स्पेसिफर के बाद बनाम से पहले डिबगर को उस अपवाद पर बंद न करें जब इसे फेंक दिया जाता है और पकड़ा जाता है सी ++ में हमारे पास आभासी निर्माता क्यों नहीं है?

जावास्क्रिप्ट फ़ाइलें कैशिंग

ब्राउजर जेएस फाइल्स के कैश्ड संस्करणों को (सर्वरसेड से) उपयोग करने के लिए सबसे अच्छा तरीका क्या है?

वेब के समाधान से एकत्रित समाधान "जावास्क्रिप्ट फ़ाइलें कैशिंग"

याहू पर एक नज़र डालें! टिप्स: http://developer.yahoo.com/performance/rules.html#expires

Google के सुझाव भी हैं: https://developers.google.com/speed/docs/best-practices/caching

या .htaccess फ़ाइल में

AddOutputFilter DEFLATE css js ExpiresActive On ExpiresByType application/x-javascript A2592000 

PHP से:

 function OutputJs($Content) { ob_start(); echo $Content; $expires = DAY_IN_S; // 60 * 60 * 24 ... defined elsewhere header("Content-type: x-javascript"); header('Content-Length: ' . ob_get_length()); header('Cache-Control: max-age='.$expires.', must-revalidate'); header('Pragma: public'); header('Expires: '. gmdate('D, d MYH:i:s', time()+$expires).'GMT'); ob_end_flush(); return; } 

मेरे लिये कार्य करता है।

एक डेवलपर के रूप में आप शायद इस स्थिति में जल्दी से भाग लेंगे कि आप फ़ाइलों को कैश नहीं करना चाहते हैं, जिस स्थिति में आक्रामक जावास्क्रिप्ट कैशिंग के साथ सहायता देखें

मैंने सिर्फ मेरी सप्ताहांत परियोजना कैश्ड-वेबपेज। जेएस को समाप्त कर दिया है जो जावास्क्रिप्ट फ़ाइलों को कैश करने के लिए स्थानीय स्टोरेज / वेब स्टोरेज का उपयोग करता है। यह दृष्टिकोण बहुत तेज है मेरा छोटा परीक्षण दिखाया

  • सीडीएन से jQuery लोड कर रहा है: क्रोम 268 एमएमएस , फ़ायरफ़ॉक्स: 200 एमएस
  • स्थानीयस्टॉरेज से jQuery लोड हो रहा है: क्रोम 47 एमएमएस , फ़ायरफ़ॉक्स 14 एमएस

यह प्राप्त करने के लिए कोड छोटा है, आप इसे मेरे गिथूब परियोजना https://github.com/webpgr/cached-webpgr.js पर देख सकते हैं

इसका उपयोग करने के लिए यहां एक पूर्ण उदाहरण है

पूर्ण पुस्तकालय:

 function _cacheScript(c,d,e){var a=new XMLHttpRequest;a.onreadystatechange=function(){4==a.readyState&&(200==a.status?localStorage.setItem(c,JSON.stringify({content:a.responseText,version:d})):console.warn("error loading "+e))};a.open("GET",e,!0);a.send()}function _loadScript(c,d,e,a){var b=document.createElement("script");b.readyState?b.onreadystatechange=function(){if("loaded"==b.readyState||"complete"==b.readyState)b.onreadystatechange=null,_cacheScript(d,e,c),a&&a()}:b.onload=function(){_cacheScript(d,e,c);a&&a()};b.setAttribute("src",c);document.getElementsByTagName("head")[0].appendChild(b)}function _injectScript(c,d,e,a){var b=document.createElement("script");b.type="text/javascript";c=JSON.parse(c);var f=document.createTextNode(c.content);b.appendChild(f);document.getElementsByTagName("head")[0].appendChild(b);c.version!=e&&localStorage.removeItem(d);a&&a()}function requireScript(c,d,e,a){var b=localStorage.getItem(c);null==b?_loadScript(e,c,d,a):_injectScript(b,c,d,a)}; 

लाइब्रेरी को कॉल करना

 requireScript('jquery', '1.11.2', 'http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js', function(){ requireScript('examplejs', '0.0.3', 'example.js'); }); 

आपके अपाचे। Htaccess फ़ाइल में:

 #Create filter to match files you want to cache <Files *.js> Header add "Cache-Control" "max-age=604800" </Files> 

मैंने यहां इसके बारे में लिखा है:

http://betterexplained.com/articles/how-to-optimize-your-site-with-http-caching/

मैं डुप्लिकेट के रूप में इसे बंद करने के लिए भारी परीक्षा देता हूं; यह प्रश्न पूरे साइट पर कई अलग-अलग तरीकों से उत्तर देता है:

  • एक्सटेंशन php के साथ html के स्क्रिप्ट टैग में एक स्क्रिप्ट कैश की जाएगी?
  • ब्राउज़र स्वचालित रूप से बाह्य जावास्क्रिप्ट फ़ाइल के कैश को कब साफ़ करता है?
  • आक्रामक जावास्क्रिप्ट कैशिंग के साथ सहायता
  • सभी ब्राउज़रों में वेब पेज कैशिंग को कैसे नियंत्रित किया जाए?
  • मैं ब्राउज़र को सीएसएस और जावास्क्रिप्ट परिवर्तन कैसे देख सकता हूं?

सबसे अच्छा (और केवल) विधि सही HTTP हेडर सेट करना है, विशेष रूप से ये: "समाप्ति", "अंतिम-संशोधित", और "कैश-नियंत्रण" यह कैसे करें यह आपके द्वारा उपयोग किए जाने वाले सर्वर सॉफ्टवेयर पर निर्भर करता है।

प्रदर्शन में सुधार करने में … सामान्य विचारों और प्रासंगिक लिंक के लिए और "क्लाइंट-साइड कैश" के लिए अपाचे-विशिष्ट सलाह के लिए "सर्वर साइड पर ऑप्टिमाइज़ेशन" ढूंढें

यदि आप nginx (या सादे अंग्रेजी में nginx ) की प्रशंसक हैं तो जैसे मैं हूं, आप इसे आसानी से भी कॉन्फ़िगर कर सकते हैं:

 location /images { ... expires 4h; } 

/ Images / से किसी भी फ़ाइल के ऊपर दिए गए उदाहरण में क्लाइंट पर 4 घंटे के लिए कैश की जाएगी।

अब जब आप सही शब्दों को जानते हैं (HTTP हेडर "एक्सपर्चर", "अंतिम-संशोधित", और "कैश-कंट्रोल"), तो बस अपने द्वारा उपयोग किए जाने वाले वेब सर्वर के दस्तावेज को समझें

मेरे पास एक सरल प्रणाली है जो शुद्ध जावास्क्रिप्ट है यह एक साधारण टेक्स्ट फ़ाइल में बदलाव की जांच करता है जो कैश्ड नहीं होता है। जब आप एक नया संस्करण अपलोड करते हैं तो यह फ़ाइल बदल जाती है। बस पेज के शीर्ष पर निम्नलिखित जेएस डाल दें।

  (function(url, storageName) { var fromStorage = localStorage.getItem(storageName); var fullUrl = url + "?rand=" + (Math.floor(Math.random() * 100000000)); getUrl(function(fromUrl) { // first load if (!fromStorage) { localStorage.setItem(storageName, fromUrl); return; } // old file if (fromStorage === fromUrl) { return; } // files updated localStorage.setItem(storageName, fromUrl); location.reload(true); }); function getUrl(fn) { var xmlhttp = new XMLHttpRequest(); xmlhttp.open("GET", fullUrl, true); xmlhttp.send(); xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState === XMLHttpRequest.DONE) { if (xmlhttp.status === 200 || xmlhttp.status === 2) { fn(xmlhttp.responseText); } else if (xmlhttp.status === 400) { throw 'unable to load file for cache check ' + url; } else { throw 'unable to load file for cache check ' + url; } } }; } ; })("version.txt", "version");