我在一个网站上工作,这是建立在LAMP上,从XML馈送的数据(汽车经销商库存),并将其显示在网站上。在索引页面上有一个旋转器,它显示4辆随机的汽车,但是页面加载有很长的延迟-大约7-10秒。这是因为在显示结果之前,该网站正在循环浏览数据,以查找具有图像并满足其他标准的汽车。我的开发人员将这个脚本放在一起缓存结果5分钟:
/*
* Cache requests for 5 minutes
* Wraps original method (now _sendRequest)
*/
private function sendRequest($xml) {
error_log($xml);
$cache_filename = dirname(__FILE__) . '/cache/' . md5($xml);
if (file_exists($cache_filename) && (time() - filemtime($cache_filename)) < 300 && filesize($cache_filename) > 100) {
return file_get_contents($cache_filename);
} elseif (file_exists($cache_filename)) {
unlink($cache_filename);
}
$response = $this->_sendRequest($xml);
if (!is_dir(dirname($cache_filename))) {
@mkdir(dirname($cache_filename),0775,true);
}
@file_put_contents($cache_filename, $response);
return $response;
}
private function _sendRequest($xml) {
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 120,
CURLOPT_TIMEOUT => 120,
CURLOPT_POST => true,
CURLOPT_USERAGENT => Config::$appName,
CURLOPT_USERPWD => Config::$aweAPIKey,
CURLOPT_URL => Config::$aweAPIURL,
CURLOPT_POSTFIELDS => $xml
);
$ch = curl_init();
curl_setopt_array($ch, $options);
$content = curl_exec($ch);
//echo "ERROR: " . curl_error($ch);
curl_close($ch);
return $content;
}脚本的目录在/lib/client.php中,它在/lib/cache中保存了大量包含车辆数据的文本文件,但是站点页面的负载并没有减少。是否应该对脚本进行一些更改,或者如何保存缓存的数据?
https://stackoverflow.com/questions/11835849
复制相似问题