javascript – 在缓存页面中调用动态内容(当前使用ajax)的正确方法是什么?

前端之家收集整理的这篇文章主要介绍了javascript – 在缓存页面中调用动态内容(当前使用ajax)的正确方法是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们有一个新闻网站,我们缓存一个完整的文章页面.

页面上有4个区域需要继续保持动态:

>查看计数器:我们在页面加载时向该文章的view_counts添加1.
>标题:在网站的标题上,我们检查是否存在session-> id,如果存在,我们会显示欢迎[名称],我的个人资料/注销,如果不存在,我们会显示注册/登录.
>评论:我们显示为该文章所做的评论.
>跟踪用户行为:我们跟踪用户在网站上所做的每一个操作

现在,我们想到这样做的唯一方法是通过AJAX调用

$('#usercheck').load(<?PHP echo "'" . base_url() . "ajax/check_header'"; ?>);

等等.

这对cpu产生了巨大的负担,但是接近这个的正确/替代方式是什么?

请参照附件:

解决方法

首先,您不必为每个可能的动态内容使用AJAX,尤其是在评论的情况下,您也可以通过iframe加载它们.
这样,您不依赖于Javascript来发出请求.
它甚至可能适用于柜台.

但是,根据我在图表中看到的内容,您的问题不是Javascript,也不是数据库服务器.在我看来,你有一些沉重的PHP控制器,也许你正在加载一个繁重的框架只是为了检查$session-> id.

此外,“我们跟踪每一个动作”是什么意思?你如何追踪它们?你是从每一个小东西发送一个AJAX请求还是你用JS去掉它们,并且每隔30秒左右只发送一个?

我的建议是你考虑你正在调用PHP代码的大小,并尽可能地减少它,如果看起来可行,甚至为零(通过利用localStorage在第一次登录后跟踪你的用户会话),并且可能以其他方式加载计数器和评论.

例如,我推断您只是在每页加载时检查一次计数器,忽略当前用户正在阅读文章时其他用户的后续加载,因此您的计数器可能会在一段时间内过时,具体取决于您的交通.

我将更好地解释它:你的页面有n个视图,所以当我加载它时,你请求n然后向我显示n 1.在我阅读时,其他用户会请求并查看同一页面x次.您在服务器上的计数器肯定已更新为n x,但我页面上的计数器仍然显示“n views”.
那么,挑剔并向我展示n 1并且没有更新它,因此被x关闭是什么意思?

所以,首先计数器控制器应该尽可能的纤薄,如果你在iframe中加载它,如果没有AJAX自动更新怎么办?

How to refresh an iframe not using javascript?

这将使计数器保持最新状态,您可以在每个页面视图中使用PHP渲染一次,然后静态地提供生成的HTML文件.

猜你在找的Ajax相关文章