计数器使用JavaScript

时间:2012-05-04 07:29:08

标签: javascript php

<?php
    session_start();

    if(isset($_SESSION['views']))
    $_SESSION['views']=$_SESSION['views']+1;

    else
    $_SESSION['views']=1;
    echo "Views=". $_SESSION['views'];
    echo '<br>'."<a href='destroy.php'>Set Counter1</a>";
    ?> 

上面的代码是维护一个计数器,每次用户刷新页面时它都会增加。我想做同样的工作,但使用JavaScript但无法找到任何在线帮助PLZ

3 个答案:

答案 0 :(得分:1)

如果刷新页面,javascript将再次加载并从零开始。您必须使用AJAX(与您的PHP脚本结合使用)或使用cookie来使计数数字持久化。在此页面上,您可以找到一个小教程:http://www.quirksmode.org/js/cookies.html

答案 1 :(得分:1)

我们必须首先弄清楚你到底想要达到的目标。 JavaScript在客户端的浏览器中运行,因此它无法以任何方式改变服务器上的$ _SESSION。如果您希望仅在客户端保留此计数器,请尝试setting a cookie via JavaScript。另一种选择是将计数器存储在服务器会话上并通过AJAX递增。依赖于JavaScript工作的问题是它们不可靠,因为客户端总是可以选择禁用JavaScript。也许更好的选择是嵌入一个iframe,它以PHP脚本为目标,增加计数器......

答案 2 :(得分:0)

刷新后,JavaScript无法记住任何变量。您必须将计数保存在服务器或客户端计算机上 如果您希望将计数存储在客户端,则可以使用localstorage:

window.onberforeunload=function(){
    localStorage.loads++;
    return true;
}

或使用cookies:

window.onbeforeunload=function(){
    document.cookie="NAME; VALUE; EXPIRE";
}

请注意,localstorage仅适用于HTML5

的新浏览器