我们有一个新闻网站,我们缓存一个完整的文章页面.
该页面上有4个区域需要继续保持动态:
>查看计数器:我们在页面加载时向该文章的view_counts添加1.
>标题:在网站的标题上,我们检查是否存在session-> id,如果存在,我们会显示欢迎[名称],我的个人资料/注销,如果不存在,我们会显示注册/登录.
>评论:我们显示为该文章所做的评论.
>跟踪用户行为:我们跟踪用户在网站上所做的每一个操作
$('#usercheck').load(<?PHP echo "'" . base_url() . "ajax/check_header'"; ?>);
等等.
这对cpu产生了巨大的负担,但是接近这个的正确/替代方式是什么?
请参照附件:
解决方法
首先,您不必为每个可能的动态内容使用AJAX,尤其是在评论的情况下,您也可以通过iframe加载它们.
这样,您不依赖于Javascript来发出请求.
它甚至可能适用于柜台.
这样,您不依赖于Javascript来发出请求.
它甚至可能适用于柜台.
但是,根据我在图表中看到的内容,您的问题不是Javascript,也不是数据库服务器.在我看来,你有一些沉重的PHP控制器,也许你正在加载一个繁重的框架只是为了检查$session-> id.
此外,“我们跟踪每一个动作”是什么意思?你如何追踪它们?你是从每一个小东西发送一个AJAX请求还是你用JS去掉它们,并且每隔30秒左右只发送一个?
我的建议是你考虑你正在调用的PHP代码的大小,并尽可能地减少它,如果看起来可行,甚至为零(通过利用localStorage在第一次登录后跟踪你的用户会话),并且可能以其他方式加载计数器和评论.
例如,我推断您只是在每页加载时检查一次计数器,忽略当前用户正在阅读文章时其他用户的后续加载,因此您的计数器可能会在一段时间内过时,具体取决于您的交通.
我将更好地解释它:你的页面有n个视图,所以当我加载它时,你请求n然后向我显示n 1.在我阅读时,其他用户会请求并查看同一页面x次.您在服务器上的计数器肯定已更新为n x,但我页面上的计数器仍然显示“n views”.
那么,挑剔并向我展示n 1并且没有更新它,因此被x关闭是什么意思?
所以,首先计数器控制器应该尽可能的纤薄,如果你在iframe中加载它,如果没有AJAX自动更新怎么办?