[英]How to change URL path when paging using ajax + jQuery
我正在使用ajax发布请求来对网站中的供稿进行分页。 在获取发布请求数据时,我正在通过清除先前数据并呈现来自请求的新数据来重新设计页面。 我还希望能够更改URL,因此保存新页面链接将使用户进入当前页面。
例:
如何设置URL指向新页面而不触发刷新(无重定向)?
我正在使用Nodejs + express。
您可以使用历史记录pushstate,但某些浏览器不支持。
history.pushState({id: 'SOME ID'}, '', 'myurl.html');
而且不要忘了window.onpopstate,如果用户单击“后退”按钮,它将弹出。
将用户重定向到锚点。
<a href="#2" onclick="loadPage(2);">Page 2</a>
并在您的document.ready中:
if (window.location.hash.length > 1){
var pageNumber = window.location.hash.substring(1);
loadPage(parseInt(pageNumber));
} else{
loadPage(0);
}
我了解您的目标是单页应用程序。
虽然保留该URL很好,但请注意,您可能需要不同的URL来直接访问应用程序的不同部分。 尽管如此,您仍可以使用AJAX加载内容并保持流畅的应用程序。 解决方法是使用位置的hash
部分。
Sammy.js框架为您提供了一个不错的基础,您可以尝试一下。
我不相信不触发刷新就可以更改URL的查询部分(可能是由于安全问题)。 但是,您可以更改锚,并使用事件侦听器检测何时更改锚。
//Listener
$(window).on('hashchange', function() {
if(loaction.hash.length > 1) {
//The anchor has been changed.
loadPageWithAjax("example.com/feed.php?page=" + location.hash.substring(1));
} else {
//Load standard page
...
}
});
更改锚点以加载新的提要
<a href="#2">Page 2</a>
请记住不要使用用作ID的锚,因为这会使浏览器滚动到该元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.