【问题标题】:Custom URI using javascript使用 javascript 自定义 URI
【发布时间】:2015-01-31 23:34:12
【问题描述】:

我遇到了一个电子商务网站,只要在产品列表页面上应用过滤器,它就会执行以下操作:

例如,当您在产品列表页面“www.example.com/productcategory/category1”上单击“subcategory = 2”(链接带有 href="/productcategory/category1/subcategory2")时

  1. 地址栏中显示的 URI 已更改为模仿过滤器请求,而无需重新加载整个页面。即“www.example.com/productcategory/category1/subcategory2”

  2. 根据应用的过滤器,ajax 调用仅重新加载页面的一部分,即显示子类别 = 2 的产品。

但当您在地址栏中输入“www.example.com/productcategory/category1/subcategory2”时,也会照常重新加载新页面。

我无法使用重写规则来实现此特定行为,因为每当我单击带有 href="www.example.com/productcategory/category1/subcategory2" 的链接时,它都会根据重写规则和全新的页面被重新加载。

我的问题: 1.如何更改地址栏中的URL但不重新加载页面? 2. 是否可以有一个重写规则,只有当你在地址栏中明确输入 url 并回车时才重定向页面?

【问题讨论】:

    标签: javascript mod-rewrite


    【解决方案1】:

    要更新浏览器显示的 url,无需重新加载页面,您可以使用JavaScript History API - 示例here

    我不清楚你的问题的第二部分是什么意思,当网络服务器收到请求时,会应用重写规则 - 服务器不知道/关心请求是如何触发的,但是如果您正在使用 History API 更新浏览器中的 url,然后没有请求发送到服务器,这纯粹是浏览器内的操作。

    【讨论】:

    • 感谢您的回答。 pushState() 是我一直在寻找的函数。
    猜你喜欢
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多