एचटीएमएल 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एक राउटर के साथ घटनाओं के लिए सुनो ।