在javascript中更新查询字符串

时间:2014-10-24 08:49:33

标签: javascript jquery html ajax request.querystring

我有一个使用ajax读取xml文件的网页。 Ajax因为我只想更新数字而不是整个页面。 它使用SetInterval()每5秒读取一次文件,因为文件每5秒更新一次。 我想知道通过在查询字符串中添加一个Counter来重新加载xml文件的次数。 我失败了,因为如果我更改了查询字符串,页面会重新加载。是否可以在JavaScript / JQuery中执行此操作?

这就是我试图解决这个问题的方法:

function loadXMLDoc(filename) {
var xmlhttp;

if (window.XMLHttpRequest) {
    xmlhttp = new XMLHttpRequest();
}
else // code for IE5 and IE6
{
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}

var href = window.location.href;

if (counter < 1) {
    href += "index.html?count=" + ++counter;
    window.location.href = href;
} else {
    href = href.substring(0, href.length - 1);
    window.location.href = href + ++counter;
}

xmlhttp.open("GET", filename + "?count=" + counter, false);
xmlhttp.send();

var xdoc = xmlhttp.responseXML;

var xmlDoc = new ActiveXObject('Msxml2.DOMDocument.6.0');
xmlDoc.loadXML(new XMLSerializer().serializeToString(xdoc));

return xmlDoc;

这也不会产生我想要的查询字符串:

http://localhost:52646/index.html?count=1index.html?count=1

这有可能实现吗?

1 个答案:

答案 0 :(得分:0)

您可以使用HTML5 localstorage来实现此目的,下面是您的ref的一些代码:

if(localStorage.getItem('count')=='undefined')
    localStorage.setItem('count',1);
else
    localStorage.setItem('count',parseInt(localStorage.getItem('count'))++);