修改url中的查询字符串而不重新加载

时间:2013-01-01 07:22:42

标签: jquery asp.net

通过传递查询字符串来过滤产品。但问题是每次我选择一个过滤器查询时都会附加到url并重新加载页面。我不想重新加载页面只是通过查询字符串并通过进行ajax调用过滤产品。 就像flipkart 正在做

这是 my page

请让我帮忙解决这些问题。

2 个答案:

答案 0 :(得分:4)

您可以使用jquery ajax。这太简单了

您需要创建一个ashx / asmx页面,该页面将根据传递的url参数返回结果。我建议返回JSON作为结果。

jQuery ajax可以如下使用。 jQuery API

$.ajax({
  url: "GetItems.ashx?design=1";
}).done(function() { 
  alert("Got the results");
});

然后,您可以使用jQuery模板呈现JSON数据。 jQuery API

答案 1 :(得分:0)

一些兼容HTML5的网络浏览器已经实现了一个历史API,可以用于类似于你想要的东西:

if (history.pushState) {
    var newurl = window.location.protocol + "//" + window.location.host + window.location.pathname + '?myNewUrlQuery=1';
    window.history.pushState({path:newurl},'',newurl);
}

我测试过,它工作正常。它不会重新加载页面,但它只允许您更改URL查询。您将无法更改协议或主机值。

了解更多信息:

http://diveintohtml5.info/history.html

https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history