缓存外部XML文件,应该怎么做?

时间:2012-08-21 07:14:58

标签: php ajax wordpress

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

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

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

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

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;

1 个答案:

答案 0 :(得分:1)

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

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

  1. 用户A请求文件。
  2. 系统检查缓存文件是否存在。
  3. 缓存文件不存在。创建一个,保持5分钟。 (资源昂贵)
  4. 提供缓存文件。
  5. 3分钟后,用户B请求文件。
  6. 系统检查缓存文件是否存在。
  7. 缓存文件存在。
  8. 提供缓存文件。 (节省了大量资源)。
  9. 3分钟后,用户C请求文件。
  10. 系统检查缓存文件是否存在。
  11. 缓存文件已过期,再次创建,保留5分钟
  12. 这对于高流量网站或数据不太可能发生变化的应用程序来说是一种有效的方法,但检查资源的资源非常昂贵。

相关问题