Hos*_*ssj 8 javascript php ajax cpu jquery
我们有一个新闻网站,我们缓存一个完整的文章页面.
该页面上有4个区域需要继续保持动态:
现在,我们想到这样做的唯一方法是通过AJAX调用:
$('#usercheck').load(<?php echo "'" . base_url() . "ajax/check_header'"; ?>);
Run Code Online (Sandbox Code Playgroud)
等等.
这对CPU产生了巨大的负担,但是接近这个的正确/替代方式是什么?
请参照附件:
首先,您不必对所有可能的动态内容都使用 AJAX,特别是在评论的情况下,您也可以通过iframe
. 这样,您就不再依赖 Javascript 来发出请求。它甚至可能适用于柜台。
但是,根据我从你的图表中看到的情况,你的问题不是 Javascript,也不是数据库服务器。在我看来,你有一些沉重的 PHP 控制器,也许你正在加载一个沉重的框架只是为了进行$session->id
检查。
此外,“我们跟踪每一个行动”是什么意思?你如何追踪他们?您是否从每件小事中发送 AJAX 请求,或者您是否使用 JS 对它们进行反跳并仅每 30 秒左右发送一次?
我的建议是,您考虑所调用的 PHP 代码的大小,并尽可能地缩小它,如果可行的话甚至可以缩小到零(通过在localStorage
第一次登录后跟踪您的用户会话),并且也许可以用其他方式加载计数器和评论。
例如,我推断您每次页面加载时只检查一次计数器,而在当前用户正在阅读文章时忽略其他用户的后续加载,因此您的计数器可能会碰巧过时一次,具体取决于您的交通。
我要更好地解释一下:你的页面有n 个视图,所以当我加载它时,你请求n,然后向我显示n+1 。当我阅读时,同一页面被其他用户请求并查看了x次。您服务器上的计数器肯定已更新为n+x,但我页面上的计数器仍然显示“n 次浏览”。那么,挑剔并向我显示n+1而不更新它,从而被x关闭有什么意义呢?
所以,首先计数器控制器应该尽可能的薄,如果你将它加载到 iframe 中,无需 AJAX 自动更新,会怎么样?
这将使计数器保持最新状态,您可以在每个页面视图中使用 PHP 渲染一次,然后静态地提供生成的 HTML 文件。
归档时间: |
|
查看次数: |
221 次 |
最近记录: |