小编典典

更新AJAX通话的URL?

ajax

现在,使用AJAX的最大问题是,如果我在一个页面上使用AJAX,请转到另一个页面,然后使用浏览器的“后退”按钮返回使用AJAX更改的所有内容。

我曾考虑过使用jQuery
Addresss
插件来解决该问题,但我不喜欢它仅用“#whatever.html”来修改URL而不是完全更改它。

理想情况下,当我进行相关的AJAX调用时,我希望URL从“ www.example.com/p:2/”到“ www.example.com/p:3/”。

这是可能吗?


阅读 264

收藏
2020-07-26

共1个答案

小编典典

不,这是不可能的。

我希望您意识到您正在尝试解决一个极其困难的问题。

假设您的网址看起来像

http://example.com/mypage/

如果您以编程方式将窗口位置更改为

http://example/mypage/1/

浏览器将接管并尝试导航到该页面,然后出现了您喜欢的ajax代码!

那有什么选择呢?您使用URL片段。

假设您有一个这样的网址,

http://example.com/anotherpage/#section

浏览器将首先加载http://example.com/anotherpage/并尝试查找名为“
section”的锚点并滚动到该位置。此行为被“地址”插件利用。这类似于那些“滚动到顶部”链接的工作方式。

因此,如果您在页面上

http://example.com/mypage/

并将网址更改为

http://example.com/mypage/#1

浏览器不会加载新页面,而是尝试找到名为“ 1”的锚点并滚动到该锚点。

即使您已设法将片段添加到URL,也并不意味着工作已完成。如果用户按下“后退”按钮,则DOM将被重置,您将必须解析这些片段并重新创建DOM。绝对是不平凡的。

2020-07-26