【发布时间】:2017-01-24 12:22:58
【问题描述】:
我的 pageview 脚本计数器(php 代码)发生了一个奇怪的问题。 当我使用 Firefox 浏览器访问我的网站页面时,浏览量的增量等于 +3(例如从 9 到 12)。如果我重新加载页面,增量是正确的,等于 +1。
对于 Opera 浏览器,大多数情况下,第一个页面调用的增量为 +2,后续页面重新加载时的增量为 +1。 使用 Chrome 时,第一次调用的增量为 +3,后续重新加载时的增量为 +1。
查询很简单:
// update viewtimes
$momento = date("Y-m-d G:i:s", time());
$queryUpdateVisite = "
UPDATE projects SET
lastviewtime = '$momento',
viewtimes = viewtimes+1
WHERE id='$dati[id]' ";
if (mysqli_query($db, $queryUpdateVisite)) {
$messaggioUpdateVisite = "<div class=\"alert alert-success\">ok</div>";
} else {
$messaggioUpdateVisite= "<div class=\"alert alert-danger\">ERROR</div>";
echo "$messaggioUpdateVisite\n";
}
如何解决?
编辑:即使使用:WHERE id= $dati[id] 行为也是一样的。
通过打开:http://www.fabiodisconzi.com/open-h2020/per-country/it/universita+degli+studi+di+sassari/index.html 并检查“视图”列尝试访问一些项目。即使使用 Edge 浏览器,问题仍然存在。
【问题讨论】:
-
可能页面是浏览器预加载的? (请参阅andydavies.me/blog/2013/10/22/…)此外,您可以使用 SQL NOW() 函数作为日期时间,因此:
lastviewtime = NOW() -
更新! 问题是由 google adsense 脚本引起的。为什么?导致三次或双重计数的过程是什么?我刚刚尝试删除 adsense 代码,浏览量计数器工作正常。
-
应该是adsense网络ASYNC模式的问题。
-
会不会是服务器的问题?