दिलचस्प पोस्ट
विम को एक चरित्र के रूप में सभी सफेद रिक्त स्थान दिखाएं एफ़.पी.नेट कोर में Config.json से AppSettings मान को कैसे पढ़ा जाए MongoDB: प्रत्येक फ़ील्ड को एक फ़ील्ड में अपडेट करें ग्लोबल जावास्क्रिप्ट व्हेरिएबल स्कोप: यह काम क्यों नहीं करता है? एक जार फ़ाइल से एक फ़ाइल कैसे पढ़ा? क्या JVM पूंछ कॉल अनुकूलन को रोकता है? एसएसएच पर सब्लाइम का उपयोग कैसे करें NSURL सत्र के माध्यम से पोस्ट अनुरोध भेजें जावा स्ट्रिंग सभी गैर अंकीय वर्णों को निकालते हैं कैसे गैर-सदस्य कार्य एनक्यूसिलेशन में सुधार क्यों करता है। जेएसन () एक आक्षेप में वापस आ जाता है अगर वस्तु में शाब्दिक? पाठ के बीच का अंतर कैसे बढ़ाएं और सीएसएस में अधोरेखण कैसे करें PHP बफर ob_flush () बनाम फ्लश () JQuery के AJAX प्रतिक्रिया एचटीएमएल के साथ डिव अद्यतन करें जावा एसएसएल और प्रमाणपत्र कीस्टस्टोर

वेब ब्राउजर में बैक बटन कैसे काम करता है?

मैंने इस प्रश्न के बारे में वेब पर खोज की लेकिन मुझे कुछ नहीं मिला:

वापस बटन का तर्क क्या है? जब हम किसी वेब ब्राउज़र पर बैक बटन दबाते हैं तो क्या हो रहा है?

मैं वास्तव में इस बारे में और अधिक समझना चाहूंगा।

धन्यवाद।

वेब के समाधान से एकत्रित समाधान "वेब ब्राउजर में बैक बटन कैसे काम करता है?"

आपका वेब ब्राउज़र उन पन्नों के एक स्टैक (या सूची, यदि आपकी इच्छा है) रखता है जो आपने उस विंडो में विज़िट किया है। मान लीजिए आपका मुख पृष्ठ google.com है और वहां से आप कुछ अन्य वेबसाइटों पर जाते हैं: youtube.com, yahoo.com, और cnn.com। पिछले एक पर जाकर, सूची इस तरह दिखती है:

google.com -> youtube.com -> yahoo.com -> cnn.com ^ | current page 

जब आप वापस बटन दबाते हैं, तो ब्राउज़र आपको सूची में पिछले पृष्ठ पर वापस ले जाता है, जैसे:

 google.com -> youtube.com -> yahoo.com -> cnn.com ^ | current page 

इस बिंदु पर आप youtube.com पर ले जाने के लिए वापस फिर से दबा सकते हैं, या फिर आप cnn.com पर फिर से लाने के लिए अग्रेषित कर सकते हैं। मान लें कि आप दूसरी बार वापस दबाएं:

 google.com -> youtube.com -> yahoo.com -> cnn.com ^ | current page 

यदि आप अब, कहते हैं, abc.com पर जाते हैं, तो सूची इस तरह दिखती है:

 google.com -> youtube.com -> abc.com ^ | current page 

ध्यान दें कि दोनों yahoo.com और cnn.com सूची से चले गए हैं। इसका कारण यह है कि आपने एक नया मार्ग लिया है। ब्राउज़र केवल उन पन्नों की एक सूची बनाए रखता है जिन पर आप गए थे, अब आप कहां जाते हैं, हर पृष्ठ का इतिहास नहीं, जिसे आप कभी भी कर चुके हैं ब्राउज़र भी आपके द्वारा देखी जा रही साइट की संरचना के बारे में कुछ नहीं जानता है, जिससे कुछ आश्चर्यजनक व्यवहार हो सकते हैं।

आप एक शॉपिंग साइट पर हैं (ne.com, एक संक्षिप्त उदाहरण के रूप में) जिसके माध्यम से ब्राउज़ करने के लिए श्रेणियों और उप-श्रेणी के उत्पाद हैं। साइट डिजाइनर ने सोचा है कि आप श्रेणियों के माध्यम से नेविगेट करने के लिए खिड़की के शीर्ष के निकट ब्रेडक्रंब प्रदान किए हैं। आप साइट के शीर्ष पृष्ठ से शुरू करते हैं, हार्डवेयर पर क्लिक करें, फिर मेमोरी सूची अब इस तरह दिखती है:

 google.com -> ne.com -> ne.com/hw -> ne.com/hw/mem ^ | current page 

आप हार्डवेयर श्रेणी में वापस जाना चाहते हैं, इसलिए बैक बटन का उपयोग करने के बजाय आप ब्रेडक्रंब का उपयोग माता-पिता वर्ग में कर सकते हैं। अब ब्राउज़र की सूची इस प्रकार दिखती है:

 google.com -> ne.com -> ne.com/hw -> ne.com/hw/mem -> ne.com/hw ^ | current page 

साइट संरचना के अनुसार, आप पिछड़े (एक स्तर तक) गए, लेकिन ब्राउज़र के लिए आप आगे बढ़ गए क्योंकि आपने एक लिंक पर क्लिक किया था किसी भी बार जब आप एड्रेस बार में किसी यूआरएल में एक लिंक या टाइप पर क्लिक करते हैं, तो आप ब्राउजर के संबंध में आगे बढ़ रहे हैं या नहीं, यह लिंक उस पेज पर ले जाता है जिसे आप पहले से ही कर चुके हैं।

अंत में, आप मुख्य साइट पृष्ठ पर वापस जाना चाहते हैं (ne.com)। आप ब्रेडक्रंबों का उपयोग कर सकते हैं, लेकिन इस समय आप वापस बटन पर क्लिक करते हैं – ऐसा लगता है कि आपको एक स्तर ले जाना चाहिए, है ना? लेकिन यह आपको कहां लेता है?

यह शुरू में कई उपयोगकर्ताओं (मैं वास्तव में ऐसा करने के लिए होता है जब भी शामिल है) में भ्रामक है, यह आपको "नीचे" स्तर लेता है, मेमोरी श्रेणी में वापस। पृष्ठों की सूची को देखते हुए यह देखना आसान है कि क्यों:

 google.com -> ne.com -> ne.com/hw -> ne.com/hw/mem -> ne.com/hw ^ | current page 

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

क्या यह अच्छा होगा यदि ब्राउज़र साइट डिजाइनर को वापस बटन को स्पष्ट बात करने के लिए (जो आपको एक स्तर लेते हैं) करने के बजाय इसे जो भी करते हैं, करते हैं?

संपादित करें: एक टिप्पणीकार ने पूछा कि क्या ब्राउज़र पृष्ठ पुनः लोड करता है या बस इसे अपने स्थानीय कैश के बाहर दिखाता है।

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

मुझे इसके बारे में सोचना पसंद है क्योंकि मेरा आखिरी अनुरोध पुनः जारी करना है। यदि आप एक सामान्य जीईटी प्रदर्शन करते हैं, तो शायद यह पिछली बार (शून्य से गतिशील सामग्री) उसी चीज़ को वापस कर देगा यदि आपने कोई पोस्ट किया था, तो आप सर्वर पर फ़ॉर्म (पुष्टि के बाद) को पुनः सबमिट करने जा रहे हैं

मूल विचार अंतिम पृष्ठ या तार्किक साइट विभाजन पर वापस जाना है

जीमेल को देखकर आप देखेंगे कि क्या आप कोई खोज करते हैं और एक संदेश पर क्लिक करते हैं, तो वापस बटन पर क्लिक करें, आपको वह खोज वापस ले जाएगा जो आपने किया था।

जब आप इसे अधिकांश ब्राउज़रों में क्लिक करते हैं तो यह या तो अंतिम अनुरोध को पुनः भेजेंगे या ब्राउज़र कैश साइटों पर कैश लोड करेगा।

मुझे लगता है कि यह समझाने का सबसे आसान तरीका छद्मोकोड में है:

 class Page: String url, ... Page previous, next # implements a doubly-linked list class History: Page current # current page void back(): if current.previous == null: return current = current.previous refresh() void forward(): if current.next == null: return current = current.next refresh() void loadPage(Page newPage): newPage.previous = current current.next = newPage # remove all the future pages current = current.next display(current) 

देखे गए पृष्ठों का इतिहास एक ढेर-समान रूप में रखा जाता है जब आप शीर्ष तीन पृष्ठों (उदाहरण के लिए ए, बी, सी) को "पॉप" करते हैं और फिर एक अलग पृष्ठ डी पर जाते हैं, तो आप आगे बढ़कर फिर से बी को नहीं पा सकते हैं।

एक भयावहता के रूप में, आपको सुनिश्चित करना चाहिए कि आपका वेबएप कोई फर्क नहीं पड़ता कि ब्राउज़र बैक बटन को कैसे प्रबंधित करता है 🙂 क्या यह अनुरोध पुनः भेजें? क्या नया अनुरोध पुराने के समान है, या यह किसी भी तरह से भिन्न है? ब्राउज़र फिर से पोस्ट की पुष्टि करने के लिए उपयोगकर्ता पूछता है? पृष्ठ के किस तत्वों को फिर से अनुरोध किया जाएगा और कैश से क्या लोड किया जाएगा? क्या ब्राउज़र मेरे कैश नियंत्रण हेडर का सम्मान करेगा?

इन सवालों के जवाब एक ब्राउज़र और उपयोगकर्ता सेटिंग्स के संस्करण, संस्करण पर निर्भर करते हैं। आप को सॉफ्टवेयर डिजाइन करें ताकि सभी को इससे ज्यादा कुछ फर्क न पड़े।

बिना सीधे उत्तर के लिए खेद है, लेकिन यहां पहले से ही कुछ सीधे उत्तर दिए गए हैं।

एक ब्राउज़र हमेशा अपने यादों के लिए पृष्ठों को संग्रहीत करता है और जब हम वापस बटन दबाते हैं तो यह पिछले पृष्ठ के लिए सर्वर से अनुरोध नहीं भेजता है, बल्कि यह सिर्फ उसकी कैश को देखता है जहां यह पृष्ठों को संग्रहीत करता है और यह LIFO नियम का पालन करता है यही कारण है कि हमें उस पेज को पहले दे दो, जो पिछली बार हमने खोले थे

ब्राउज़र पिछले देखने वाले पृष्ठ को वर्तमान से पहले लोड करता है, और फिर हो सकता है कि किसी भी रीडायरेक्शन का अनुसरण करें?

मुझे लगता है कि प्रश्न का सवाल गायब हो रहा है।