我正在使用ajax的分页。如果用户点击第3,那么我将使用ajax打开第三页。
如果从该页面开始,我会转到另一个页面&点击浏览器后退按钮,然后第3页不打开。它正在打开第1页。
那么如果用户点击后退按钮
,我怎么能打开第3页答案 0 :(得分:0)
您可以在现代浏览器中使用hash
(或pushState
方法)来“保存”最后一个分页状态。加载数据时,请从hash
。
这是原始示例。你可以看到,如果你点击链接移动到另一个页面,然后你回头(使用后退按钮或其他),它会显示预览项目。
如何运作?
每当您点击链接时,请说出第一个链接,即href
属性为#1
,事件hashchange
被触发。现在,您可以使用hash
(location.hash
方法用于删除replace
符号)来阅读#
的值。现在,如果您点击第二个链接,然后点击返回再次触发hashchage
事件,依此类推..
// set data
var data = [],
numOfPages = 5;
for (var i = 0; i < numOfPages; i++) {
data.push([1 + '' + i, 2 + '' + i, 3 + '' + i, 4 + '' + i, 5 + '' + i]);
}
// paging method
var list = document.querySelector('ul');
function getPage(pageNum) {
!pageNum && (pageNum = 0);
var html = '';
for (var i = 0; i < data[pageNum].length; i++) {
html += ('<li>' + data[pageNum][i] + '</li>');
}
list.innerHTML = html;
}
getPage();
// generate pageing buttons
var paging = document.querySelector('#paging'),
pagingHTML = '';
for (var i = 0; i < data.length; i++) {
pagingHTML += ('<a href="#' + i +'">' + i + '</a>');
}
paging.innerHTML = pagingHTML;
// listen to changes in the hash
window.addEventListener('hashchange', function() {
var pageIndex = location.hash.replace('#', '');
getPage(pageIndex);
});
a {
display:inline-block;
margin-left: 10px;
}
<ul></ul>
<div id="paging"></div>
答案 1 :(得分:0)
我已使用html5本地存储解决了这个问题。
当使用点击任何页面然后该页面没有时,我存储在本地存储中。因此,如果用户转到另一个页面&amp;点击后退按钮,然后我点击了最后一页,点击了&amp;我正在收到那些记录。
因此,通过使用本地存储,问题得以解决。