दिलचस्प पोस्ट
Laravel 5 में निष्पादित क्वेरी कैसे प्राप्त करें? डीबी :: getQueryLog खाली सरणी लौट रहा है Google मानचित्र एपीआई वी 3: अजीब यूआई डिस्प्ले विचलन (स्क्रीनशॉट के साथ) HTTP प्रतिक्रिया भेजने के बाद PHP निष्पादन जारी रखें लिनक्स पर जीआरपी के साथ आप डॉस लाइन एंडिंग्स (सीआरएलएफ़) वाली फाइलों की खोज कैसे करते हैं? जावा में अजीब पूर्णांक मुक्केबाजी एकाधिक जीआईटी वापस आना जावास्क्रिप्ट का उपयोग करते हुए वेब-सर्विस से बाइनरी स्ट्रिंग से पीडीएफ फाइल को कैसे बनाया जाए डेटाटाइबल आर में कॉलम का सबसेट चुनें एंड्रॉइड में रिमाइंडर कैसे सेट करें? ऑरेकल में सभी टेबल बाधाओं को अक्षम करें क्या यह एक चुनिंदा शैली के लिए संभव है? मैं एंड्रॉइड में गोल कोनों के साथ एक सूची दृश्य कैसे बना सकता हूं? STD :: फ़ंक्शन कैसे कार्यान्वित है? Std :: नक्शा में कुंजी के रूप में char * का उपयोग करना IPhone पर डेटा सहेजने का सर्वोत्तम तरीका

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

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

Solutions Collecting From Web of "जावास्क्रिप्ट फ़ाइलें कैशिंग"

याहू पर एक नज़र डालें! टिप्स: 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");