加载xml会减慢我的网站速度

时间:2010-05-21 15:41:27

标签: php xml

是否可能加载xml会降低我的网站速度?

我在php中编写了这个小函数来遍历一个字符串数组来计算我的粉丝总数

function getFeedCount() {
    foreach ($array as $value) {
        $xml = simplexml_load_file("http://api.feedburner.com/awareness/1.0/GetFeedData?uri=$value")
                or die ("Unable to load XML file!");
        $circulation += $xml->feed->entry['circulation'];
    }   
    return $circulation;
}

数组大约有10个项目,自从我开始使用它以来,它确实减慢了我的网站。

我该怎么做才能解决这个问题。

4 个答案:

答案 0 :(得分:4)

从feedburner加载数据将导致这种情况:每当有人查看您的页面时,它必须向feedburner服务器发出10个请求,然后才能向访问者返回任何数据。

可能最好的方法是定期将feedburner供稿缓存到您的服务器,并在页面生成中读取缓存的副本。

答案 1 :(得分:2)

绝对会让您的网站变慢。由于它不是异步操作,因此该页面的整个创建等待该XML下载,然后才能完成其他操作。

根据XML的变化程度,人们会对XML数据进行本地缓存,并定期进行更新。这样做的好处是,对于大多数页面视图,您在本地抓取资源,缺点是它不是实时数据。

另一种选择是在页面加载后尝试使用javascript加载xml数据,但此过程的缺点是PHP无法访问XML数据。

答案 2 :(得分:0)

号码经常变化吗?也许您可以缓存它(例如将其存储在文件中)并且每天只获取一次(例如通过cron作业)。

我的意思是,访问网址需要时间。这就像您的访问者访问10页之后才能访问您的页面...

答案 3 :(得分:0)

在每个页面加载上发出HTTP请求是非常有用的,完全正常的是你的网站速度慢了。 对此最好的方法是写一个XML parser that supports caching

您可以使用this PHP API too