this question (How to get request url in a jQuery $.get/ajax request) से मुझे पता चला कि मैं इसे this.url
से पुनर्प्राप्त कर सकता हूं।
MDC window.history से मैं वाक्य रचना पाया और MDC Manipulating the browser history से मैंने पाया कि मैं history.state
साथ वर्तमान स्थिति (हालांकि Chrome के साथ काम नहीं लगता है) प्राप्त कर सकते हैं और पता चला कि जब pushState
बुला मैं केवल stateObject
पर 640k पात्रों भेज सकते हैं या फिर यह एक अपवाद फेंकता है।
सफल ajax अनुरोध के लिए मेरे वर्तमान विधि है:
OnSuccess: function(html, status, xhr){
var requestedUrl = this.url.replace(/[&?]X-Requested-With=XMLHttpRequest/i, "");
// if the url is the same, replace the state
if (window.location.href == requestedUrl)
{
history.replaceState({html:html}, document.title, requestedUrl);
}
else
{
history.pushState({html:html}, document.title, requestedUrl);
}
},
एक बुनियादी परीक्षण मैं stateObject
पर पूरे परिणाम भंडारण कर रहा हूँ के लिए, यदि यह एक अपवाद फेंकता मैं बजाय यूआरएल सेट हो जाएगा बनाने के लिए सक्षम होने के लिए एक नया अनुरोध
मेरे popstate
घटना
$(window).bind("popstate", function (e) {
var state = e.originalEvent.state;
$("#body").html(state.html);
});
यह पेज पुनर्स्थापित करता है के रूप में यह पहले से था, मैं एक नया अनुरोध बनाने की जरूरत नहीं है।