Ajax - 如何按内容更改URL

时间:2009-12-08 14:10:14

标签: ajax url

我会解释: 我有一个图片库,第一页是display.php。 用户可以使用箭头翻阅图片,当您单击箭头时,它会发送Ajax请求以从db中检索下一张图片。现在我希望URL根据显示的图片进行更改。

So if the first picture is:
www.mydomain.com/display.php?picture=Paris at night

我将转到下一个,URL将是

www.mydomain.com/display.php?picture=The Big Ben

我该怎么做?

5 个答案:

答案 0 :(得分:3)

这里的诀窍是带有锚片段的uri。

“#”之前的部分指向互联网上的资源,通常指定为页面上的锚点。

如果资源相同,浏览器不刷新,但在存在时移动到锚点位置。

通过这种方式,您可以从可用性的角度保持浏览器历史记录的便利性,同时使用ajax替换页面上的某些部分,以实现快速响应的用户界面。

使用像jQuery历史这样的插件(正如其他人所建议的)非常简单:用rel属性装饰某些元素,插件可以用来处理其余的元素。

与此主题相关的还有一种叫做“hijax”的东西,这是我真正喜欢的东西。

这意味着生成html就像在ajax之前的那样。然后你劫持某些行为,比如链接,并用ajax请求内容,只替换必要的部分。这与上述技术相结合,可以实现真正的SEO友好和可访问的网页。

答案 1 :(得分:1)

例如,您可以使用jQuery history plugin

答案 2 :(得分:1)

更改网址的搜索将加载更改的网址。

另请参阅:stackoverflow, javascript changing the get parameter without redirecting

答案 3 :(得分:0)

你真的想在这里使用AJAX吗?

传统的网络请求会像这样工作......

  • 用户导航至display.php
  • 用户点击“下一步”,位置更新为“display.php?picture = Big-Ben”
  • 向用户显示大本钟,以及指向“display.php?picture = Parliment”的链接
  • 用户点击“下一步”,地址更新为“display.php?picture = Parliment”

等等。

使用AJAX,您基本上可以用“幕后”GET替换GET,它只是替换了页面的一部分。你会这样做,以使事情更快......例如......

  • 用户导航至display.php
  • 用户点击“下一步”,使用AJAX请求获取下一个图片位置
  • 图像(和图像描述)更改为下一个图像

您的建议是使用AJAX检索“下一个网址”,然后在整个页面上执行GET。当您发送每个页面而根本不使用AJAX时,发送“下一个”图像会好得多。

答案 4 :(得分:0)

这最能描述我想到的一切:http://ajaxpatterns.org/Unique_URLs