通过服务器更改Javascript中的localStorage变量

时间:2012-03-20 20:07:53

标签: php javascript xml

我有一个变量localStorage.lastUpdate,它存储时间戳,例如1332237161。我需要将该时间戳传递给服务器,我尝试通过下面的行执行:

listener.php?q="+localStorage.lastUpdate

我还有另一个变量localStorage.numUpdates,它应该从服务器接收更新的数量。我很困惑我是否可以使用下面的代码与xml来运行命令。我的服务器端php文件可以执行以下操作吗

echo "localStorage.numUpdates=".$currentCount.";";

echo "localStorage.lastUpdate=".time().";";

它会对javascript部分中的localStorage变量产生影响吗?

function contactServer()
{
    if (window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest();}
    else{xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}

    xmlhttp.onreadystatechange=function()
    {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET","listener.php?q="+localStorage.lastUpdate,true);
    xmlhttp.send();
}

任何信息都会有所帮助,谢谢!

1 个答案:

答案 0 :(得分:1)

这不起作用(不要使用eval()!)。

但是你可以在PHP脚本中输出JSON:

echo json_encode( array('lastUpdate' => time(), 'numUpdated' => $currentCount) );

在您的JavaScript代码中:

if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
  var result = JSON.parse(xmlhttp.responseText);
  localStorage["lastUpdate"] = result["lastUpdate"];
  localStorage["numUpdated"] = result["numUpdated"];
}