为了账号安全,请及时绑定邮箱和手机立即绑定

用tp5写了个浏览量的功能,每次网页刷新就+1,本地测试正常,但是放到线上每次刷新+N

用tp5写了个浏览量的功能,每次网页刷新就+1,本地测试正常,但是放到线上每次刷新+N

缥缈止盈 2019-02-20 04:17:36
用tp5写了个浏览量的功能,每次网页刷新就+1,线下本地测试正常,放到线上,使用服务器的浏览器测试也是+1, 线下访问线上的就变成每次刷新+4,用静态变量测试结果执行次数也就执行了一次而已,排除代码Bug 请问是哪里除了问题?? 附上代码: /** * 读取详情 * 浏览+1 */ public function detail($id='',$browse=true,$sql=false) { if (empty($id)) goto end; $data = $this->alias('a','left') ->field('a.id,a.tid,a.title,a.keyword,a.introduce,a.content,a.img,a.addtime,a.browse,u.name user_name,t.name type_name') ->join('tags t','t.id=a.tid','left') ->join('user u','u.id=a.uid','left') ->where(array('a.id'=>$id,'a.status'=>2)) ->find(); // dp($this->getLastSql()); if (true == $sql) return $this->getLastSql(); end: if (empty($data)) return null; //浏览+1 if (true == $browse) $this->where('id',$data['id'])->setInc('browse'); $data = $data->toArray(); $data['user_name'] ? : $data['user_name'] = 'admin'; return $this->cotm($data); } 只有这个操作里面写了 浏览+1的代码 if (true == $browse) $this->where('id',$data['id'])->setInc('browse'); 找到原因了 看了日志 发现 程序 被执行了四次 但是为什么会被执行四次呢??
查看完整描述

4 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

有看过服务器日志么,是否确定测试时间段没有其他访问请求?

查看完整回答
反对 回复 2019-03-01
?
慕丝7291255

TA贡献1859条经验 获得超6个赞

可能你的服务器有点卡,刷新了一次请求了多次接口,你可以设置一个时间间隔。

查看完整回答
反对 回复 2019-03-01
?
弑天下

TA贡献1818条经验 获得超8个赞

做好js防抖或节流

查看完整回答
反对 回复 2019-03-01
  • 4 回答
  • 0 关注
  • 1493 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信