我设法设置了一个使用HTML5 History API的工作示例。它在Firefox中运行良好,但在Chrome和IE11中,每次按下后退或前进按钮都会使页面加载时间慢得多。
按下4到5次(在两页之间来回),它变得非常慢。
猜测可能是关于如何使用AJAX加载内容,但为什么它可以很好地用于页面之间的前几个转换。
这是一个有用的链接: http://madebym.me/playground/AJAX-transitions/
以下是使其全部工作的代码片段:
loadContent = function () {
$.ajax({
url: pageUrl, success: function (data) {
$('#main-content').html(data);
}
});
if (pageUrl != window.location) {
window.history.pushState({ path: pageUrl }, '', pageUrl);
}
}
$(window).on('popstate', function () {
$.ajax({
url: location.pathname, success: function (data) {
$('#main-content').html(data);
}
});
});
$('a').on('click', function () {
pageUrl = $(this).attr('href');
loadContent();
return false;
});