प्रतिस्थापन () बनाम पुशस्टैट ()


91

मैं पढ़ रहा था और बीच फायदे / नुकसान के लिए खोज replaceState()और pushState()। मोज़िला का लेख भी पढ़ें , और यह दिलचस्प परीक्षण लेकिन अभी भी मेरे लिए मतभेद स्पष्ट नहीं है।

कोई भी एक व्याख्या करने के लिए कि वे क्या अलग हैं?


जवाबों:


159

replaceState()ब्राउज़र में URL को बदल देगा (यानी बैक बटन दबाने से आपको वापस नहीं लगेगा)

pushState() URL को बदल देगा, और पुराने को ब्राउज़र हिस्ट्री में रखेगा (यानी बैक बटन को दबाने पर आपको वापस ले जाएगा)


57

आपके लिंक से

history.replaceState () बिल्कुल history.pushState () को छोड़कर संचालित होता है, सिवाय इसके कि प्रतिस्थापन () एक नया बनाने के बजाय वर्तमान इतिहास प्रविष्टि को संशोधित करता है।

जब आप कुछ उपयोगकर्ता कार्रवाई के जवाब में वर्तमान इतिहास प्रविष्टि की स्थिति या URL को अद्यतन करना चाहते हैं, तो प्रतिस्थापन () विशेष रूप से उपयोगी है।

यदि आप केवल इतिहास प्रविष्टि को अपडेट करना चाहते हैं, तो replaceState()अन्यथा उपयोग करें pushState(), जो पुरानी प्रविष्टि को बनाए रखेगा और एक नया निर्माण करेगा। वे समान हैं, लेकिन दोनों के अलग-अलग प्रभाव हैं इसलिए यह इस बात पर निर्भर करता है कि आप नई इतिहास प्रविष्टियों को बदलना या बनाना चाहते हैं या नहीं।

इसे ऐसे समझें कि मैं एक कार्ड को दूसरे के ऊपर रखकर (चेहरे को ऊपर करके) कार्ड के डेक पर काम कर रहा हूं और आप केवल शीर्ष कार्ड को ढेर में रख सकते हैं (यानी आखिरी कार्ड जो मैं निपटाता हूं)। मान लीजिए कि मैंने ढेर पर दिल का एक जैक लगा दिया। अब अगले कार्ड के लिए अगर मैं उपयोग करता हूं replaceState, तो मैं उस जैक ऑफ हार्ट को बंद कर देता हूं और अगला कार्ड डाल देता हूं। कार्ड की संख्या समान है क्योंकि हमने सिर्फ शीर्ष कार्ड को बदल दिया है। अगर मैंने pushStateइसके बजाय इस्तेमाल किया होता, तो मैं अगला कार्ड जैक ऑफ हार्ट्स के ऊपर डाल देता (इसलिए अब दोनों ढेर में मौजूद हैं और ढेर एक कार्ड अधिक है)।

यूआरएल के साथ सादृश्य में कार्ड स्वैप करें और यही URL इतिहास संशोधित किया गया है।


2
"history.replaceState () बिल्कुल history.pushState () को छोड़कर संचालित होता है, सिवाय इसके कि एक नया बनाने के बजाय प्रतिस्थापन () वर्तमान इतिहास प्रविष्टि को संशोधित करता है।" यह उद्धरण मुझे यहां डेवलपर . mozilla.org/en-US/docs/Web/API/History_API से मिला । क्या आप बता सकते हैं कि वैश्विक ब्राउज़र इतिहास क्या है। यह कहता है कि प्रविष्टि वैश्विक ब्राउज़र इतिहास पर बनाई गई है।
रघु डीवी

"वैश्विक ब्राउज़र इतिहास" का क्या अर्थ है? @ रघुदेव
स्टीवेमाओ

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