history.pushState()状态对象是否适合这样的事情?

时间:2015-04-06 01:44:41

标签: javascript ajax pushstate popstate

我通过AJAX加载页面,最近阅读了history.pushStateonpopstate

我在pushState中没有得到状态对象参数的全部内容,而MDN上的页面只给出了一个简单的对象作为示例。但我想,嘿,为什么我不使用这个对象存储AJAX响应HTML并在onpopstate触发时加载?所以我做了这样的事情:

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

if (history.pushState) {
    var state = {
        html: xhr.responseText
    };
    history.pushState(state, null, url);
}

onpopstate

window.onpopstate = function(event) { 
    if(event && event.state) {
        someDivInTheDoc.innerHTML = event.state.html;
    } else {
        location.reload();
    }
};

当然,这会加载(旧的)可能已更新的内容,使其类似于当您返回并获取浏览器的缓存时,我想。

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

那么,状态对象是否意味着这样的事情?或者我应该在历史移动位置时再次强制重新加载/执行AJAX请求?

感谢。

0 个答案:

没有答案