ब्राउज़र '' F5 '' और '' Ctrl + F5 '' ताज़ा करने के लिए क्या अनुरोध करता है?


394

क्या वेब ब्राउज़र में कौन से कार्य F5और Ctrl + F5ट्रिगर के लिए एक मानक है?

मैंने एक बार IE6 और Firefox 2.x में प्रयोग किया था। F5 ताज़ा एक साथ सर्वर के लिए भेजा एक HTTP अनुरोध को ट्रिगर करेगा If-Modified-Since, हेडर, जबकि Ctrl + F5इस तरह के एक शीर्ष लेख नहीं होगा। मेरी समझ में, F5 यथासंभव कैश्ड सामग्री का उपयोग करने की कोशिश करेंगे, जबकि Ctrl + F5 सभी कैश्ड सामग्री को छोड़ने का इरादा है और बस सर्वर से सभी सामग्री को फिर से प्राप्त करना है।

लेकिन आज, मैंने देखा कि कुछ नवीनतम ब्राउज़रों (क्रोम, IE8) में यह इस तरह से काम नहीं करता है। हेडर दोनों F5को Ctrl + F5भेजें और भेजें If-Modified-Since

तो यह कैसे काम करने वाला है, या (अगर कोई मानक नहीं है) तो मुख्य ब्राउज़र कैसे इन ताज़ा सुविधाओं को लागू करने में भिन्न होते हैं?


10
FWIW: यह निश्चित रूप से, जबकि सकता सूपर उपयोगकर्ता विषय हो, और यहां तक कि के रूप में इरादा किया गया हो सकता कुछ हद तक अंत उपयोगकर्ता केंद्रित जब मूल रूप से कहा कि, इस बिंदु पर यह दोनों उत्तर दिया गया है और प्रोग्रामर और वेब डेवलपर्स द्वारा संदर्भित और शायद यहाँ छोड़ दिया जाना चाहिए । SU के पास इसके पहले से ही कई अन्य, अधिक उपयोगकर्ता-उन्मुख संस्करण हैं, और इसकी आवश्यकता नहीं है ...
Shog9

जवाबों:


313

आम तौर पर बोलना:

F5यदि सामग्री बदली गई है तो भी आपको वही पृष्ठ दे सकता है, क्योंकि यह पृष्ठ को कैश से लोड कर सकता है। लेकिन Ctrl- F5कैशे रिफ्रेश करने के लिए बाध्य करता है, और गारंटी देगा कि यदि सामग्री को बदल दिया जाता है, तो आपको नई सामग्री मिल जाएगी।


86
Thi सटीक है, लेकिन ध्यान दें कि जबकि Ctrl + F5 ब्राउज़र को कैश को फेंकने और सर्वर से एक नया अनुरोध करने का कारण होगा, सर्वर नो-कैश हेडर को अनदेखा कर सकता है और सर्वर साइड कैश्ड पेज की सेवा दे सकता है। यदि सर्वर नो-कैश हेडर को अनदेखा करता है तो भी Ctrl + F5 पृष्ठ का पुराना संस्करण लौटा सकता है।
एरोनल्स

F5 wil पेज को रिफ्रेश करें - CTRL + F5 रिफ्रेश 'हार्ड' करेगा।
दिमित्री डेवले

यह भी उल्लेख करें, कि Ctrl-F5 एक फॉर्म सबमिट करेगा, यदि दिया गया है।
10

ठीक है, इसलिए यदि आप ctrl + f5 को हिट करते हैं, तो आप अपने ब्राउज़र को इसके कैश का उपयोग नहीं करने के लिए कहते हैं, लेकिन एक ही पृष्ठ के बाद के अनुरोधों में क्या होता है? मेरा मतलब है, क्या आप सबसे पुराने एक को देखने के बाद पेज के पुराने संस्करणों को देख सकते हैं? अगर मैं पृष्ठ 1 के संस्करण 1 को देख रहा हूँ क्योंकि इसकी कैश्ड लेकिन पहले से ही उपलब्ध संस्करण 2 को समझती है, तो मैं समझता हूँ कि ctrl + f5 मारने से मुझे संस्करण 2 दिखाई देगा। फिर मैं अपना ब्राउज़र बंद कर देता हूं और फिर से उस पृष्ठ को खोलता हूं, क्या मुझे संस्करण 1 दिखाई दे रहा है या मैं अभी भी संस्करण 2 देख रहा हूं? धन्यवाद।
मोलारस

525

यह ब्राउज़र पर निर्भर है, लेकिन वे इसी तरह से व्यवहार करते हैं।

मैंने एफएफ, आईई 7, ओपेरा और क्रोम का परीक्षण किया है।

F5आमतौर पर पृष्ठ को केवल तभी अपडेट किया जाता है जब इसे संशोधित किया जाता है। ब्राउज़र आमतौर पर सभी प्रकार के कैश का उपयोग यथासंभव करने की कोशिश करता है और अनुरोध पर "इफ़-संशोधित-चूंकि" हेडर जोड़ता है। ओपेरा "कैश-कंट्रोल: नो-कैश" भेजकर भिन्न होता है।

CTRL- F5किसी भी कैश की अवहेलना करने पर अपडेट को बाध्य करने के लिए उपयोग किया जाता है। IE7 एक "कैश-कंट्रोल: नो-कैश" जोड़ता है, जैसा कि एफएफ करता है, जो "प्रागमा: नो-कैश" भी जोड़ता है। Chrome एक सामान्य "इफ़-संशोधित-चूंकि" करता है और ओपेरा कुंजी को अनदेखा करता है।

अगर मुझे सही से याद है तो यह नेटस्केप था जो प्रेस करने पर "प्राग्मा: नो-कैश" जोड़कर कैश-कंट्रोल के लिए समर्थन देने वाला पहला ब्राउज़र था CTRL- F5

संपादित करें: अद्यतन तालिका

नीचे दी गई तालिका को जानकारी के साथ अद्यतन किया जाता है कि ब्राउज़र के रिफ्रेश-बटन पर क्लिक करने के बाद क्या होगा ( जोएल कोएहॉर्न के अनुरोध के बाद ), और "अधिकतम-आयु = 0" कैश-कंट्रोल-हैडर।

अपडेटेड टेबल, 27 सितंबर 2010

┌────────────┬───────────────────────────────────────────────┐
│  UPDATED   │                Firefox 3.x                    │
│27 SEP 2010 │  ┌────────────────────────────────────────────┤
│            │  │             MSIE 8, 7                      │
│ Version 3  │  │  ┌─────────────────────────────────────────┤
│            │  │  │          Chrome 6.0                     │
│            │  │  │  ┌──────────────────────────────────────┤
│            │  │  │  │       Chrome 1.0                     │
│            │  │  │  │  ┌───────────────────────────────────┤
│            │  │  │  │  │    Opera 10, 9                    │
│            │  │  │  │  │  ┌────────────────────────────────┤
│            │  │  │  │  │  │                                │
├────────────┼──┼──┼──┼──┼──┼────────────────────────────────┤
│          F5│IM│I │IM│IM│C │                                │
│    SHIFT-F5│- │- │CP│IM│- │ Legend:                        │
│     CTRL-F5│CP│C │CP│IM│- │ I = "If-Modified-Since"        │
│      ALT-F5│- │- │- │- │*2│ P = "Pragma: No-cache"         │
│    ALTGR-F5│- │I │- │- │- │ C = "Cache-Control: no-cache"  │
├────────────┼──┼──┼──┼──┼──┤ M = "Cache-Control: max-age=0" │
│      CTRL-R│IM│I │IM│IM│C │ - = ignored                    │
│CTRL-SHIFT-R│CP│- │CP│- │- │                                │
├────────────┼──┼──┼──┼──┼──┤                                │
│       Click│IM│I │IM│IM│C │ With 'click' I refer to a      │
│ Shift-Click│CP│I │CP│IM│C │ mouse click on the browsers    │
│  Ctrl-Click│*1│C │CP│IM│C │ refresh-icon.                  │
│   Alt-Click│IM│I │IM│IM│C │                                │
│ AltGr-Click│IM│I │- │IM│- │                                │
└────────────┴──┴──┴──┴──┴──┴────────────────────────────────┘

परीक्षण किए गए संस्करण:

  • फ़ायरफ़ॉक्स 3.1.6 और 3.0.6 (WINXP)
  • MSIE 8.0.6001 और 7.0.5730.11 (WINXP)
  • Chrome 6.0.472.63 और 1.0.151.48 (WINXP)
  • ओपेरा 10.62 और 9.61 (WINXP)

टिप्पणियाँ:

  1. संस्करण 3.0.6 I और C भेजता है, लेकिन 3.1.6 एक नए टैब में पेज खोलता है, केवल "I" के साथ एक सामान्य अनुरोध करता है।

  2. संस्करण 10.62 कुछ नहीं करता है। 9.61 सी कर सकता है जब तक कि यह मेरी पुरानी तालिका में एक टाइपो नहीं था।

Chrome 6.0.472 के बारे में ध्यान दें : यदि आप एक जबरन पुनः लोड करते हैं (जैसे CTRL- F5) तो यह व्यवहार करता है कि url आंतरिक रूप से हमेशा एक मजबूर पुनः लोड करने के लिए चिह्नित है। यदि आप एड्रेस बार में जाते हैं और एंटर दबाते हैं तो झंडा साफ हो जाता है।


5
@Joel Coehoorn: ताज़ा बटन पर क्लिक के साथ तालिका अद्यतन। ASCII ग्राफिक टेबल प्यार करने के लिए है, है ना? कलर-कोडिंग कोड कलर-कोडिंग का सिर्फ एक साइड-इफेक्ट है।
कुछ

11
क्या आप इसे एक उचित HTML तालिका के रूप में नहीं कर सकते?
जॉन टॉपले

13
FYI करें - यह उत्तर वास्तव में क्रोम विकास / बग ट्रैकिंग बोर्डों पर संदर्भित किया गया है: code.google.com/p/chromium/issues/detail?id=1906
Kip

18
@ जॉन टॉपले: टेबल्स की अनुमति नहीं है, इसलिए उत्तर नहीं है।
कुछ

1
इस तालिका पर महान कार्य - यह quirksmode पर संबंधित है। +1। मुझे आश्चर्य है कि क्या हेडर ताज़ा किए गए पृष्ठ के भीतर संसाधनों का अनुरोध करने के लिए उपयोग किए जाते हैं, जैसे कि चित्र, स्टाइलशीट, आदि ...
जेम्स हार्ट

68

मैंने ब्राउज़र के ताज़ा व्यवहार का परीक्षण करने के लिए क्रॉस-ब्राउज़र संगत पेज लागू किया है (यहां स्रोत कोड है ) और @some के समान परिणाम प्राप्त करें, लेकिन आधुनिक ब्राउज़रों के लिए:

यहां छवि विवरण दर्ज करें


आपके पृष्ठ के लिंक टूट गए हैं, मैंने उत्तर पर लिंक को ठीक कर दिया है, लेकिन उस पृष्ठ के बहुत सारे लिंक टूट गए हैं। podlipensky.com/examples/refreshbutton/index.html , podlipensky.com/post/2012/02/27/…/
जुआन मेंडेस

क्षमा करें, इसके बारे में - ब्लॉग प्रवास। लिंक को अभी ASAP तय किया जाएगा - कृपया github रिपॉजिटरी में जाएं और उदाहरण डाउनलोड करें।
पावेल पॉडलिपेंस्की

लिंक अभी भी टूटे हुए हैं। प्रवासन समाप्त नहीं हुआ?
बर्नार्डन

क्या आप ब्राउज़रों के वर्तमान संस्करण, विशेषकर मोबाइल और डेस्कटॉप सफारी, @PavelPodlipensky के साथ अपने उत्तर को अपडेट कर सकते हैं?
ग्रेग डबिकि

9

कम से कम फ़ायरफ़ॉक्स (v3.5) में, कैश को केवल साफ़ करने के बजाय अक्षम किया गया लगता है । यदि किसी पृष्ठ पर एक ही छवि के कई उदाहरण हैं, तो इसे कई बार स्थानांतरित किया जाएगा। यह imgटैग के लिए भी मामला है जो बाद में अजाक्स / जावास्क्रिप्ट के माध्यम से जोड़े जाते हैं।

इसलिए यदि आप सोच रहे हैं कि ब्राउज़र आपके ऑटो रिफ्रेश Ajax साइट पर एक ही छोटे आइकन को कुछ सौ बार डाउनलोड क्यों करता रहता है, तो यह इसलिए है क्योंकि आपने शुरू में पेज का उपयोग करके लोड किया था CTRL- F5


3

IE7 / 8/9 इस बात पर निर्भर करता है कि पृष्ठ पर ध्यान केंद्रित है या नहीं।

यदि आप पृष्ठ पर क्लिक करते हैं और CTRL+ F5तो "कैश-कंट्रोल: नो-कैश" अनुरोध हेडर में शामिल होता है। यदि आप स्थान / पता बार में क्लिक करते हैं तो CTRL+ दबाएं F5


1

जब उपयोगकर्ता प्रेस करता है, तो F5नया अनुरोध वेब सर्वर पर जाता है और अनुरोध के लिए एक प्रतिक्रिया भी प्राप्त करता है। लेकिन जब रिस्पॉन्स हेडर को पार्स किया जाता है तो यह ब्राउज़र कैश में आवश्यक जानकारी की जांच करता है। यदि कैश में आवश्यक जानकारी समाप्त नहीं हुई है, तो वह जानकारी कैश में से ही बहाल हो जाती है।

जब उपयोगकर्ता पर क्लिक करता है CTRL- F5तब भी नया अनुरोध वेब सर्वर पर जाता है और एक प्रतिक्रिया प्राप्त करता है। लेकिन इस बार जब रिस्पॉन्स हेडर को पार्स किया गया है तो यह कैश में किसी भी आवश्यक जानकारी की जांच नहीं करता है, और सभी अपडेटेड जानकारी फॉर्म सर्वर पर ही लाता है।

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