0

我对如何在性能光学中做到这一点有点困惑。

我将尝试尽可能多地描述我的页面的过程。

首先,我的页面显示了我网站的用户发布的内容。每秒钟都会添加新内容,但我每页只显示 20 或 50 个内容。

现在是我需要帮助的地方:对于我展示的每个内容,我需要检索发布该内容的用户的在线状态。这个在线状态不是用户在我网站上的在线状态,而是他在一个在线软件中的在线状态。要检索此状态,我可以下载存储在该软件的网络服务器上的 json 文件。

我之前说过每页显示 20 个内容,所以我需要下载 20 个 json 文件。不,我可以在调用 json 文件时连接 user_id。所以在 1 个 json 文件中我可以获得 20 个状态。无论如何,我认为为了我的服务器的性能,每次有人访问我的页面时下载一个 json 文件是不好的。因为这个页面可以被很多人同时访问。

我想我必须对缓存做一些事情,但我是新手。如果有人可以向我解释如何实现这一点,我会很高兴,我的意思是过程,也许是要使用的主要 php 函数。

非常感谢!

4

1 回答 1

1

实现这一点的最简单方法是通过缓存读取。这意味着您首先检查缓存(可能是 memcached)是否有当前数据,否则您通读并执行请求,然后缓存结果。使用 memcached,您可以将数据设置为过期(可能 1-5 分钟),然后您的代码将再次尝试从源中读取数据。

您需要将网络问题考虑到如何实现这一点。您需要确保您的请求相当快地超时,否则用户可能会等待很长时间才能加载页面(如果数据不是来自缓存)

更强大的解决方案将允许异步检查在线状态。加载页面时,您将从缓存中提取数据,如果丢失,您将触发作业以获取状态并更新缓存。您将在客户端拥有 ajax 代码,该代码将在页面加载后更新在线状态(希望在后台作业完成后)。页面加载时可用的状态将正确显示,而待处理的状态将显示某种“检查”状态。

于 2013-07-23T14:37:28.450 回答