-1
<?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

4

3 回答 3

1

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

于 2012-05-04T09:36:54.590 回答
1

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

于 2012-05-04T09:32:10.507 回答
0

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

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

或使用 cookie:

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

请注意,localstorage 仅适用于具有 HTML5 的较新浏览器

于 2012-05-31T17:02:24.900 回答