2010-09-13 64 views
3

我有一个网站,其中有一个项目的冗长列表显示,所以我使用分页,使服务器上的负载更容易。更改浏览器中的URL从c#codebehind(不seo路由或URL重写)

但是,我正在通过Ajax进行分页,因此当用户单击下一页或上一页链接按钮时,数据中继器将使用ajax进行刷新。

这是工作正常,直到人们开始点击该项目,然后点击返回,它将他们带到第一页。

假设您通过单击“下一页”按钮扫描约10页。数据发生变化,但浏览器中的URL不起作用。你认为你找到了你想要的东西,所以你点击它,浏览器加载不同的页面,当你点击后,浏览器会将你带到上一页,但由于url没有变化,你回到第1页。

目前,我已经删除了Ajax,所以网址每次都会改变,但是当Ajax甚至发生时,我已经看到了几个网站在浏览器中重新编写url,我想知道我是否也可以做同样的事情。

谷歌搜索URL重写扒只有SEO路由的东西,没有什么我真的想(我相信我没有使用正确的话)

我很想知道这个问题,任何蛛丝马迹或在这一个领导? 谢谢!

ps:这里有几个问题很接近,但要么太复杂,要么太偏离。对不起,如果它是重复的。

回答

2

在js中,客户端可以更改URL的唯一部分,而不会强制浏览器重新加载整个页面,这是锚定部分(http://domain/page#anchor - #号后的部分)。这部分被许多js应用程序(例如Google Picassa)使用,也由silverlight提供浏览器历史记录支持。导航到另一个数据页面时,您必须设置锚点部分。加载页面时,只需检查锚点部分并加载适当的页面。另外,您必须定期检查更改 - 当用户在他/她的浏览器中使用后退/前进功能时会发生这种情况。 (可能会发生一个事件,当发生这种情况时,我只是没有找到它)

+0

嗨,感谢您的答案,是否有任何特定的名称,这是用于这种方法,我可以搜索谷歌?改变锚点部分对我来说很好,实际上,它也是我想要的。很多。 – iamserious 2010-09-13 14:21:04

+0

我发现了一篇关于如何使用jquery实现的文章:http://asciicasts.com/episodes/175-ajax-history-and-bookmarks希望能够帮助您,或者至少为您提供更多“关键字”以查找详细信息 – maciejkow 2010-09-13 19:10:06

+0

哇!这正是我想要的!万分感谢。我花了很多年试图搜索这样的文章,这是徒劳的! – iamserious 2010-09-14 09:36:36