【问题标题】:Pageview counter increment +3 (+2 sometimes) at 1st page-call, then +1, why?浏览量计数器在第一次页面调用时增加+3(有时+2),然后+1,为什么?
【发布时间】: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模式的问题。
  • 会不会是服务器的问题?

标签: php mysql caching


【解决方案1】:

使用这个查询:

$queryUpdateVisite = "UPDATE projects SET lastviewtime = '$momento', viewtimes = viewtimes+1 WHERE id= $dati[id]";

id 用单引号书写。如果你的idnumber,那么就照原样写吧。

【讨论】:

  • 我尝试了这个修改,但问题仍然存在。非常感谢。
  • 有什么想法吗?可能是网络服务器设置错误?
猜你喜欢
  • 1970-01-01
  • 2014-03-27
  • 1970-01-01
  • 2020-03-06
  • 2018-07-30
  • 1970-01-01
  • 1970-01-01
  • 2015-04-05
相关资源
最近更新 更多