试图制作网页刷新计数器

时间:2017-02-14 11:49:12

标签: javascript php jquery html cookies

我想计算一下我的网页刷新的次数"刷新"。然后在页面上显示一条消息以及刷新次数。

例如,在第一次刷新时,以下语句显示 - " 1刷新,继续"等等。句子将随着刷新次数而变化。我至少需要打印10个句子。

最初,我认为我只是将句子放在一个数组中,然后使用cookie来计算刷新次数,然后根据刷新次数显示相应的句子。
但是,cookie是一个问题,因为它们存储字符串而不是整数。我尝试使用Number()parseInt()函数,但它们似乎无法正常工作,出于某些原因使用JavaScript会导致整个网页混乱。

然后我想到在PHP中使用会话。他们在第一次接近和我的事情上看起来也很好(因为我不喜欢在客户端做任何事情)。但是他们也没有工作,我在网页上得到了一半的印刷声明。没有反击,没有。

我已阅读过上述问题 我尝试过饼干 我试过了会议。

我的计数器PHP文件 -

<?PHP
session_start();

if(isset($_SESSION['views'])) {
    $_SESSION['views'] = $_SESSION['views']+ 1;
} else {
    $_SESSION['views'] = 1;
}
echo "Total page views = ". $_SESSION['views'];
?>

我的index.html文件末尾包含此脚本以运行上述脚本,该脚本存储在名为counter.php的其他文件中。

<?php
echo "<hr><div align=\"center\">";
    include_once "counter.php"; // this will include the counter.
echo "</div>";
?>

但是,当我加载页面时,我只会在底部获得"; include_once "counter.php"; // this will include the counter. echo ""; ?>

欢迎任何解决方案。 Cookies或会话等等。我需要让这个东西运转起来。

P.S-非常抱歉,但我无法提供指向我网页的链接,因为我必须在2017年2月15日之前保密。

3 个答案:

答案 0 :(得分:2)

php不会在.html扩展程序中执行。

(直到通过.htaccesURL-rewriting完成一些变通办法

1.将index.html更改为index.php

2.还要在​​<?php session_start();?>之上添加index.php,以便它可以显示会话数据。

注意: - 执行这两项更改后,请检查一次。

连续页面刷新的屏幕截图: -

http://i.share.pho.to/f2e45784_o.png

http://i.share.pho.to/56be5f13_o.png

http://i.share.pho.to/f68d550e_o.png

答案 1 :(得分:2)

使用cookies有很多cookie插件可用,如cookies.js

编辑---

我假设您正在使用Cookie插件..我使用过https://github.com/js-cookie/js-cookie

JS代码---

$(function () {
    RefreshCode();
})

function RefreshCode()
{
    var counter = Cookies.get('counter');
    if (!counter) {
        Cookies.set('counter', 1);
    } else {
        counter++;
        Cookies.remove('counter');
        Cookies.set('counter', counter);
    }
    console.log(Cookies.get('counter'));
}

这是完整的工作示例供您参考....

HTML代码---

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>

    <script src="jquery-3.1.1.min.js"></script>
    <script src="js.cookie.js"></script>
    <script src="CustomCounter.js"></script>
</body>
</html>

希望这个帮助...

答案 2 :(得分:1)

您仍然可以使用Cookie,甚至localStorage或sessionStorage实现您的需求。您只需要在页面加载时获取值并显示它,然后在重新加载页面时递增值。试试这个:

<h1></h1>
<button>Refresh</button>
var refreshes = parseInt(sessionStorage.getItem('refreshes'), 10) || 0;
$('h1').text('Refreshed ' + refreshes + ' time(s)');

$('button').click(function() {
    sessionStorage.setItem('refreshes', ++refreshes);
    window.location.reload();
})

Example fiddle