Google Chrome को हर बार जब मैं किसी वेब साइट पर पहुँचता हूं, तो नई Chrome फ़ाइलों की जांच करने के लिए बाध्य करें


25

इसलिए, अगर मैं इंटरनेट एक्सप्लोरर में इंटरनेट विकल्प पर जाता हूं: यहाँ छवि विवरण दर्ज करें

जब IE अद्यतन के लिए जाँच करता है तो मैं सेटिंग्स समायोजित कर सकता हूं: यहाँ छवि विवरण दर्ज करें

क्या मैं Google Chrome में कुछ ऐसा कर सकता हूं? अभी जब मैं अपनी जावास्क्रिप्ट फाइल बदल कर विजुअल स्टूडियो से डीबग करता हूं, तो क्रोम हमेशा संशोधित संस्करण का उपयोग करने के बजाय कैश्ड संस्करण का उपयोग करेगा। वर्तमान संस्करण का उपयोग करने में सक्षम होने के लिए मुझे अपनी अस्थायी इंटरनेट फ़ाइलों / कैश को मैन्युअल रूप से साफ़ करना होगा, जो वास्तव में कष्टप्रद है।


14
आप इसके बजाय Visual Studio द्वारा किए गए कैशिंग को अक्षम क्यों नहीं करते? (गंभीरता से, जो बिल्ली में कैशिंग के साथ एक आईडीई डिजाइन करता है?)
jpmc26

2
@ jpmc26 क्या कैशिंग?
EJoshuaS -

21
मैंने अपनी अंतिम टिप्पणी को शिथिल किया; अगर यह अस्पष्ट हो गया है तो मेरी माफी। यदि सर्वर विशिष्ट हेडर को वापस भेजता है तो ब्राउजर केवल कैश फाइल करता है। यह दृश्य स्टूडियो के विकास सर्वर के लिए डिफ़ॉल्ट रूप से कैश हेडर वापस भेजने के लिए बेवकूफ है, क्योंकि उन फाइलों में बदलाव की उम्मीद की जानी चाहिए । पृष्ठ पर लोड किए जा रहे पुराने जेएस और सीएसएस फाइलों से समस्याओं से निपटने के लिए एक अतिरिक्त भाग-दूसरा पृष्ठ अच्छी तरह से लायक है। मुझे पूरी उम्मीद है कि इसे निष्क्रिय करने का कोई तरीका है।
jpmc26

1
कोई भी विज़ुअल स्टूडियो विकल्प नहीं खोज सका, लेकिन एक विकास web.config परिवर्तन दृश्य स्टूडियो में कैशिंग को हल कर सकता है। iis.net/configreference/system.webserver/staticcontent/…
GER

1
क्रोम एक्सटेंशन "कैश किलर" ने इसे मेरे लिए हल किया, मुझे नहीं पता कि क्यों लेकिन ctrl + f5 कभी-कभी मेरे लिए काम नहीं करता है
flagg19

जवाबों:


55

विकल्प 1: अस्थायी रूप से कैश अक्षम करें

  1. डेवलपर टूल खोलें (प्रेस F12या मेनू, अधिक टूल, डेवलपर टूल)
  2. डेवलपर टूल सेटिंग खोलें (प्रेस F1या DevTools मेनू, सेटिंग्स)
  3. प्राथमिकता फलक के नेटवर्क हेडर के तहत "कैश को निष्क्रिय करें (DevTools खुला है)" की जाँच करें

विकल्प 2: सत्र के लिए कैश अक्षम करें

क्रोम को कमांड-लाइन स्विच के साथ शुरू करें --disk-cache-size=1 --media-cache-size=1जो कैश को प्रभावी रूप से अक्षम करने के लिए कैश को 1 बाइट तक सीमित करेगा।

विकल्प 3: मैनुअल फोर्स रिफ्रेश

वर्तमान पृष्ठ को पुनः लोड करें, कैश की गई सामग्री को अनदेखा करें: Shift+ F5या Ctrl+ Shift+r

क्रोम कीबोर्ड शॉर्टकट - क्रोम मदद ("वेबपेज शॉर्टकट्स के तहत")

विकल्प 4: अतिरिक्त रीलोड विकल्प ( स्रोत )

डेवलपर टूल खुले हुए, रीलोड मेनू को निम्न के साथ प्रदर्शित करने के लिए राइट-क्लिक करें:

  • सामान्य रीलोड (Ctrl + R)
  • हार्ड रीलोड (Ctrl + Shift + R)
  • खाली कैश और हार्ड रीलोड

1
@ ब्रूनो ऑड, मैंने हमेशा ctrl + f5 का भी इस्तेमाल किया। बस परीक्षण किया गया है और दोनों काम करने लगते हैं।
जेरोइन

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

8

यह क्रोम रिफ्रेश से संबंधित 100% नहीं, बल्कि आगे के विकास के लिए हो सकता है। जैसे @Dom ने कहा, आप अपने ressource के बाद a? V = # जोड़ सकते हैं। प्रक्रिया को स्वचालित करने का एक तरीका उक्त फ़ाइल की सामग्री को हैश करना और संस्करण के रूप में उपयोग करना है।

अगर यह मदद कर सकता है तो मुझे C # में इसे कैसे लागू करना है (कार्यान्वयन के लिए रेजर) पर एक स्निपेट कोड है।

हेल्पर:

public static string HashUrl(string relativeUrl)
    {
        var server = HttpContext.Current.Server;
        if (File.Exists(server.MapPath(relativeUrl)))
        {
            byte[] hashData;
            using (var md5 = MD5.Create())
            using (var stream = File.OpenRead(server.MapPath(relativeUrl)))
                hashData = md5.ComputeHash(stream);

            return relativeUrl.Replace("~", "") + "?v=" + BitConverter.ToString(hashData).Replace("-", "");
        }
        return relativeUrl + "?v=notFound";
    }

कार्यान्वयन:

<link rel="stylesheet" href=@Util.HashUrl("~/Controllers/Home/Views/Index.css") />

उम्मीद है की यह मदद करेगा

EDIT --- कुछ ने कुछ बिल्ड रनटाइम के लिए और 1000 छोटे संसाधनों के लिए कहा है, इसमें लगभग 11 ms लगते हैं।

https://en.code-bude.net/2013/08/07/md5-hashes-in-c-benchmark-and-speed-%E2%80%8B%E2%80%8Boptimization/

यहाँ छवि विवरण दर्ज करें https://en.code-bude.net/wp-content/uploads/2013/08/md5_performance_benchmark_2.png


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

1
क्या यह एक बड़ा प्रदर्शन नुकसान नहीं है? हर सीएसएस और जेएस फाइल को हर बार एक पेज में डाला जाता है ... क्या आपने इसके लिए बेंचमार्क चलाया है?
रेडरी का कहना है कि मोनिका

2
@Raidri फ्लाई पर उड़ना शायद एक अच्छा विचार नहीं है (मैंने ध्यान नहीं दिया था कि जब मैं पहली बार टिप्पणी कर रहा था तो ऐसा कर रहा था)। बिल्ड प्रक्रिया के दौरान हैश या संस्करण का उपयोग करने के लिए संदर्भ अद्यतन करना है।
ट्रीपाउंडाउंड

@Raidri मेरे पास 20 मेसेबी के साथ एक छोटा सा अनुप्रयोग है जो मेरे पास हैश है और मुझे बिल्ड टाइम में कोई अंतर नहीं दिखता है इसलिए मैंने वास्तव में इसे बेंचमार्क करने की कोशिश नहीं की। इसके अलावा, मुझे यकीन नहीं है कि मैं आपके दूसरे वाक्य को समझ पाऊंगा, लेकिन रीसस को कैश किया जाता है और ब्राउजर केवल उन्हें रीचेक करता है यदि हैश बदल जाता है => यदि आप रीसोर्स को ही बदल देते हैं।
ब्रेडुचम्प

हैश की गणना बिल्ड टाइम पर नहीं बल्कि हर पेज जनरेशन पर की जाती है। यह एक सर्वर समस्या है और इसका ब्राउज़र में कैशिंग से कोई लेना-देना नहीं है।
रेडरी का कहना है कि मोनिका

5

अन्य मामलों में जहां यह संभव नहीं हो सकता है, उदाहरण के लिए एक अंतिम-उपयोगकर्ता के कंप्यूटर पर एक ताज़ा बल प्रदान करना चाहते हैं जिसकी आपके पास पहुंच नहीं है, आप स्क्रिप्ट नाम के लिए एक संस्करण संख्या को क्वेरी पैरामीटर के रूप में संलग्न कर सकते हैं जो ब्राउज़र की पहचान कर रहा है। यह एक अलग फाइल के रूप में है । अर्थात। example.js?v=1। ध्यान रखें कि आपको इसे पुनः लोड करने के लिए प्रत्येक संख्या पर संख्या बदलने की आवश्यकता होगी।

आप इसे स्थानीय विकास के साथ भी कर सकते हैं, लेकिन देव उपकरण विधि अधिक कुशल है।


3

@Steven जवाब के अलावा, जब आपको डेवलपर टूल कंसोल खोला जाता है, तो आप रिफ्रेश बटन पर राइट क्लिक करें और ड्रॉप-डाउन मेनू का उपयोग करें।

इस मेनू में आपको "खाली कैश और हार्ड रीलोड" का विकल्प मिलता है ।

वह है जो आप ढूंढ रहे हैं।


1
मुझे लगता है कि आप क्रोम के एक गैर-अंग्रेजी संस्करण का उपयोग कर रहे हैं। मैं अंग्रेजी संस्करण का उपयोग करता हूं, और इसे "खाली कैश और हार्ड रीलोड" कहा जाता है।
नजल्ल

1

यदि आप साइट विकसित कर रहे हैं, तो आपको पता होना चाहिए कि सर्वर पर फ़ाइलों को ठीक से बदलने के लिए क्रोम को must-revalidateसेटिंग की आवश्यकता होती Cache-Controlहै।

अन्य उत्तर आपको बताते हैं कि कैसे SHIFT-F5 को हिट करने के लिए सभी फाइलों को फिर से भरने के लिए अपने स्वयं के क्रोम के संस्करण को मजबूर करें। लेकिन क्या साइट के सभी उपयोगकर्ताओं को यह बताने के लिए उचित है कि वे हर बार साइट में बदलाव करें? यदि आप Cache-Controlशामिल करने के लिए सेट करते हैं must-revalidateतो क्रोम यह देखने के लिए जांच करेगा कि क्या कोई फाइल बदल गई है, और फिर जरूरत पड़ने पर उन्हें ठीक से डाउनलोड करें।

इस ब्लॉग पोस्ट पर विवरण देखें: https://agiletribe.wordpress.com/2018/01/29/caching-for-chrome/

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.