所以我有一些需要有网页浏览量的个人资料页面。我将视图数据存储在mysql和php(实际上是laravel)中。基本思路是每次访问配置文件时都按1添加视图。
基本思想是在个人资料页面中添加php代码,例如
$page->view += 1; $page->save();
但是如果用户多次点击f5怎么办?它会导致查询运行很多,我担心它最终会使应用程序变慢。
我正在考虑在用户点击f5和ajax调用添加视图时使用js提示。但我想知道是否有更好的解决方案(比如,youtube是如何做出他们的观点的)?
答案 0 :(得分:0)
您可以在页面上的一定时间后计算视图。
要实现这一点,您需要一个延迟的javascript函数,如:
setTimeout(function(){countView()},3000);
(延迟3秒)
countView()
应该是对运行$page->view += 1; $page->save();
的函数的ajax调用
由于Ajax调用是异步的,因此执行不会延迟您的应用程序流,尽管页面视图表上的简单增量不会对性能造成太大损害
答案 1 :(得分:0)
只要用户不删除cookie,这将有效。
if ($_COOKIE['returning']!="yes")
{
// first visit!
}
setcookie("returning", "yes", time()+360000);
另一种方法是在数据库中记录IP并检查用户是否已访问过,但代码比我现在发布的更复杂。如果接受,我将在稍后编辑帖子。