एचटीएमएल 5 इतिहास कल्पना विचित्र है।
history.pushState()
किसी popstate
ईवेंट को प्रेषण नहीं करता या अपने आप नया पृष्ठ लोड नहीं करता । यह केवल इतिहास में राज्य को आगे बढ़ाने के लिए था। यह एकल पृष्ठ अनुप्रयोगों के लिए "पूर्ववत करें" सुविधा है। आपको एक popstate
घटना को मैन्युअल रूप से भेजना होगा या history.go()
नए राज्य में नेविगेट करने के लिए उपयोग करना होगा। विचार यह है कि एक राउटर popstate
घटनाओं को सुन सकता है और आपके लिए नेविगेशन कर सकता है।
ध्यान देने योग्य कुछ बातें:
history.pushState()
और घटनाओं को history.replaceState()
नहीं भेजना popstate
।
history.back()
, history.forward()
और ब्राउज़र के पीछे और आगे के बटन popstate
घटनाओं को भेजते हैं।
history.go()
और history.go(0)
एक पूर्ण पृष्ठ पुनः लोड करें और popstate
घटनाओं को न भेजें ।
history.go(-1)
(बैक 1 पेज) और history.go(1)
(फॉरवर्ड 1 पेज) popstate
ईवेंट डिस्पैच करते हैं।
आप एक नए राज्य को धक्का देने के लिए इस तरह से इतिहास एपीआई का उपयोग कर सकते हैं और एक पॉपस्टेट घटना को भेज सकते हैं।
history.pushState({message:'New State!'}, 'New Title', '/link');
window.dispatchEvent(new PopStateEvent('popstate', {
bubbles: false,
cancelable: false,
state: history.state
}));
फिर popstate
एक राउटर के साथ घटनाओं के लिए सुनो ।