Javascript history.pushState()状态对象是否用于类似的用途?

Javascript history.pushState()状态对象是否用于类似的用途?,javascript,ajax,pushstate,popstate,Javascript,Ajax,Pushstate,Popstate,我正在通过AJAX加载页面,最近读到了关于history.pushState和onpopstate 在pushState中,我没有真正了解state对象参数的含义,MDN上的页面只给出了一个简单的对象作为示例。但是我想,嘿,为什么我不使用这个对象来存储AJAX响应HTML并在onpopstate触发时加载它呢?所以我在做这样的事情: 关于XHR状态200/304(AJAX成功): if (history.pushState) { var state = { html: x

我正在通过AJAX加载页面,最近读到了关于
history.pushState
onpopstate

pushState
中,我没有真正了解state对象参数的含义,MDN上的页面只给出了一个简单的对象作为示例。但是我想,嘿,为什么我不使用这个对象来存储AJAX响应HTML并在
onpopstate
触发时加载它呢?所以我在做这样的事情:

关于XHR状态200/304(AJAX成功)

if (history.pushState) {
    var state = {
        html: xhr.responseText
    };
    history.pushState(state, null, url);
}
window.onpopstate = function(event) { 
    if(event && event.state) {
        someDivInTheDoc.innerHTML = event.state.html;
    } else {
        location.reload();
    }
};
onpopstate

if (history.pushState) {
    var state = {
        html: xhr.responseText
    };
    history.pushState(state, null, url);
}
window.onpopstate = function(event) { 
    if(event && event.state) {
        someDivInTheDoc.innerHTML = event.state.html;
    } else {
        location.reload();
    }
};
当然,这将加载可能已更新的(旧)内容,使其类似于您返回并获取浏览器缓存时的内容,我猜

在MDN上,它说该对象在JSON表示中最多可以容纳640k个字符

那么,state对象是用来做这样的事情的吗?或者当历史记录移动位置时,我应该强制重新加载/再次执行AJAX请求吗?

谢谢