1

我在 wordpress 中有一个维护项目,我需要解析外部 xml。以前的开发人员已经实现了这一点。我只是想知道这是一个好方法还是我需要使用自己的方法。

他将 xml 缓存在一个缓存 5 分钟的 json 文件中。他让我使用 ajax 调用它,然后解析它。

你认为这是一个好方法吗?我们不能直接解析xml文件而不是缓存和解析吗?

他正在使用外部 api_cache 获取 xml 并缓存在 json 文件中

PHP文件

 require 'api_cache/api_cache.php';
 $cache_file = 'jsonfile';
 $api_call ='xmlfile';
 $cache_for = 5; 
 $api_cache = new API_cache ($api_call, $cache_for, $cache_file);

  if (!$res = $api_cache->get_api_cache()) {
      $res = "{error: 'Could not load cache'}";
  }
 ob_start();
 echo $res;
 $json_body = ob_get_clean();

 header('Content-Type: application/json');
 header('Content-length: '.strlen($json_body));
 header('Expires: '.$api_cache->get_expires_datetime());
 echo $json_body;
4

1 回答 1

1

缓存的目的是防止(资源昂贵的)代码在多次请求时运行多次。

相反,您保存(或缓存)文件的副本,并在短时间内大量请求到达时提供它。示例工作流程:

  1. 用户 A 请求文件。
  2. 系统检查缓存文件是否存在。
  3. 缓存文件不存在。创建一个,保持5分钟。(资源昂贵)
  4. 提供缓存文件。
  5. 3 分钟后,用户 B 请求文件。
  6. 系统检查缓存文件是否存在。
  7. 缓存文件存在。
  8. 提供缓存文件。(节省了大量资源)。
  9. 3 分钟后,用户 C 请求文件。
  10. 系统检查缓存文件是否存在。
  11. 缓存文件过期,重新创建,保留5分钟
  12. 等等

在高流量站点或数据不太可能更改的应用程序中,这是一种有效的方法,但检查它的资源非常昂贵。

于 2012-08-21T09:15:02.230 回答