2014-10-01 46 views
15

जब मैं ब्राउज़र में <== back बटन दबाता हूं, तो क्या चल रहा है?जब आप ब्राउज़र के साथ वापस जाते हैं तो क्या होता है?

  • क्या एक ही यूआरएल के साथ क्वेरी फिर से बनाई गई है?
  • क्या वर्तमान डीओएम राज्य सहेजा और बहाल किया गया है? (केवल HTML)
  • क्या वर्तमान पृष्ठ स्थिति सहेजी गई है और पुनर्स्थापित किया गया है? (एचटीएमएल + जावास्क्रिप्ट)
  • क्या सर्वर पूछताछ की गई है लेकिन अगर unchanged भेजती है तो स्थानीय कैश का उपयोग किया जाता है?
  • सामान्य रूप से, क्या हम मान सकते हैं कि हमारे पास पिछले पृष्ठ पर अद्यतित जानकारी है?

मैं क्योंकि उन स्थितियों का स्पष्ट नहीं कर रहा हूँ:

  • Stackoverflows कभी कभी (यह दिखाई नहीं दे रहा है, मुझे नाश करने से रोकता है, क्योंकि मैं पिछले 5 मिनट पहले मतदान किया, लेकिन यह अन्य टैब आदि में किया गया था बहुत बुरी तरह से मेरी upvotes संभालती ।)
  • जब मैं स्थानीय वातावरण पर काम करता हूं, तो मुझे लगता है कि
  • मुझे लगता है कि वापस आने पर क्या आने वाला है, इसलिए मैं हमेशा अनिश्चित हूं, इसलिए डेवलपर के रूप में, इसे उपयोग करने से बचें जितना संभव हो (केवल इतिहास में एक यूआरएल वापस खोजने के लिए)

मेरी राय यह है कि फिर से पूछताछ करना सबसे अच्छा विचार होगा, लेकिन यह सबसे तेज़ नहीं है, और ब्राउज़र उस मामले में तेजी से होना चाहता है (उपयोगकर्ता को प्रभावित करने के लिए) ... दूसरी तरफ, भंडारण पेज राज्यों स्मृति का एक बहुत खर्च करना होगा ...

+0

अच्छा सवाल है, मैं यह HTML और जे एस रहता है लगता है, लेकिन मुझे यकीन है कि नहीं हूँ, शायद यह विभिन्न ब्राउज़रों – Balder

+2

यह वास्तव में ब्राउज़रों पर निर्भर करता है में बदल जाता है। जब आप वापस दबाते हैं, आमतौर पर कुछ भी पूछताछ नहीं की जाएगी और पृष्ठ को लोड करने के लिए कैश का उपयोग किया जाएगा। समस्या आमतौर पर होती है जब आपने किसी पृष्ठ पर जावास्क्रिप्ट का उपयोग किया है, और आप इसे कैश से पुनः लोड करते हैं। – bzeaman

उत्तर

6

यह निर्भर करता है।

यह HTTP अनुरोध विधि पर निर्भर करता है। यदि पृष्ठ प्राप्त किया गया था तो ब्राउजर इसे कैश करने का निर्णय ले सकता है, और फिर से अनुरोध नहीं कर सकता है। पोस्ट और अन्य HTTP विधियों को कैश नहीं किया जाता है क्योंकि उनके साइड इफेक्ट्स सर्वर पक्ष हो सकते हैं। यही कारण है कि यदि आप एक पोस्ट अनुरोध द्वारा लोड किए गए पृष्ठ पर वापस जाते हैं तो आपको चेतावनी संवाद भी मिलता है।

यह कैशिंग हेडर पर निर्भर करता है।(See here) पेज जो स्पष्ट रूप से उनके शीर्षलेख में वर्णित कैश किए जाने की अनुमति है, को फिर से नेविगेट किए जाने पर पुन: उपयोग किया जा सकता है।

यह ब्राउज़र पर निर्भर करता है। कुछ ने उपयोगकर्ता अनुभव (अधिक कैशिंग, अधिक गति, अधिक स्थिरता) के लिए भारी अनुकूलित किया है। जहां अन्य सरल होते हैं और पृष्ठ को फिर से अनुरोध करते हैं।

यह स्मृति उपयोग पर विशेष रूप से मोबाइल उपकरणों पर निर्भर करता है। ब्राउज़र पृष्ठ सामग्री को रखने और स्थिति को न रखने का निर्णय ले सकता है यदि पृष्ठ बड़ा है या बहुत सारी उपलब्ध स्मृति नहीं है।

ब्राउज़र सॉफ़्टवेयर के जटिल टुकड़े हैं, और स्मार्ट लोग बहुत लंबे समय तक उन्हें अनुकूलित करने के लिए काम कर रहे हैं।


जहां तक ​​कैशिंग का स्तर क्या वापस नेविगेशन के लिए प्रयोग किया जाता है, मुझे लगता है कि वहाँ तीन प्राथमिक स्तरों

कर रहे हैं (यह शायद एक oversimplication है, लेकिन यह आप सामान्य विचार दे देंगे।)

  1. Uncached। पृष्ठ का पुनः अनुरोध किया गया है।
  2. कैश संपत्तियां। जब वे सर्वर से आए थे तो सामग्री और संपत्ति कैश की जाती है। यह शायद स्मृति की आवश्यकता नहीं है, बस डिस्क स्थान, क्योंकि यह शायद बहुत अधिक डेटा नहीं है।
  3. कैश राज्य। डोम राज्य, जेएस ढेर, फार्म फ़ील्ड मान, सभी स्मृति में संरक्षित। इसके लिए शायद बहुत सारी मेमोरी की आवश्यकता है, और शायद डिस्क पर लिखा नहीं गया है क्योंकि यह पेज के आधार पर कई मेगाबाइट्स हो सकता है।
1

एजेंटों के विनिर्देश (ब्राउज़रों शामिल) W3C साइट में, कहते हैं: http://www.w3.org/TR/2014/WD-UAAG20-Reference-20140925/#sc_315

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

एक संभावित व्याख्या हो सकती है: "वापस जाएं, लेकिन डेटा खोना न करें!" प्रत्येक ब्राउज़र अपने स्वयं के बैक बटन को परिभाषित करता है।

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

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