Php 我的for循环占用了太多时间
这些天,土耳其有一场选举,我正在编写一个php脚本,用API跟踪选举,我的项目中有一个for循环,显示所有土耳其选举的一般结果。这个循环总结了81个不同省份的结果,但它花费了太多的时间,有时它不起作用,因为它需要30秒以上,我的页面没有加载。我能做些什么来减少这一时间Php 我的for循环占用了太多时间,php,json,loops,for-loop,Php,Json,Loops,For Loop,这些天,土耳其有一场选举,我正在编写一个php脚本,用API跟踪选举,我的项目中有一个for循环,显示所有土耳其选举的一般结果。这个循环总结了81个不同省份的结果,但它花费了太多的时间,有时它不起作用,因为它需要30秒以上,我的页面没有加载。我能做些什么来减少这一时间 $mi_total_vote = 0; for ($id=1; $id < 82; $id++) { $turkey_data = file_get_contents('http://secim-api.adilsec
$mi_total_vote = 0;
for ($id=1; $id < 82; $id++) {
$turkey_data = file_get_contents('http://secim-api.adilsecim.net/2/city/'.$id.'.json');
$turkey_json = json_decode($turkey_data);
$mi = $turkey_json->results->mi;
$mi_total_vote = $mi_total_vote + $mi;
}
$mi_total_vote=0;
对于($id=1;$id<82;$id++){
$turkey\u data=文件\u获取\u内容('http://secim-api.adilsecim.net/2/city/“.$id..json”);
$turkey\u json=json\u解码($turkey\u数据);
$mi=$turkey_json->results->mi;
$mi_total_vote=$mi_total_vote+$mi;
}
JSON文件是我的API数据。我必须对它们进行总结,以获得所有火鸡的结果。使用cURL,速度更快:
<?php
$mi_total_vote = 0;
for ($id=1; $id < 82; $id++) {
$ch = curl_init('http://secim-api.adilsecim.net/2/city/1.json');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$turkey_data = curl_exec($ch);
$turkey_json = json_decode($turkey_data);
$mi = $turkey_json->results->mi;
$mi_total_vote = $mi_total_vote + $mi;
}
?>
利用它的特性:D-通过ajax异步加载它 (不会在这里工作,因为-但是你得到了这个概念;)) 如果你很勇敢,你可以执行一个84个循环,并立即加载它们——但这会很快引起你不必要的注意:p
var i=1;
var max=82;
var总和=0;
功能负荷(一){
$(“#状态”).text(“加载”+i+”或“+max”);
$.ajax({
网址:'http://secim-api.adilsecim.net/2/city/“+i+”.json”,
键入:“JSON”,
成功:功能(msg){
总和+=msg.results.mi;
如果(i<82){
加载(i++);
}否则{
$(“#状态”).text(“加载”+i+”或“+max+”完成”);
}
}
});
}
负荷(i)代码>
结果:0
您几乎无法减少发出HTTP请求所需的时间。。。您是否无法在单个文件中获得这些结果?遗憾的是,无法在单个文件中获得这些结果:(这没什么大不了的:/@cemekkazan对我来说只花了几秒钟。在@SupunPraneeth ye中尝试你的代码。你说得对,花了我1.5秒-但他的服务器连接可能有限。我认为我的服务器中存在旋度问题。是的,我解决了,但仍然没什么大不了,文件内容持续12秒,旋度持续9秒这是一个好主意,但仍然需要太多的时间,人们不想等待