Witam mam problem z poprawną optymalizacją skryptu. Zbiera on informacje o punktach i innych statystykach graczy należących do danego klanu w grze podczas eventu. Skrypt wykorzystuje api udostępnione przez twórców gry (JSON). Użytkownik na stronie wpisuje nazwę klanu, następnie skrypt pobiera ID szukanego klanu, wyciąga listę wszystkich graczy w klanie i po kolei zbiera informację o każdym z nich. I tu jest problem. Taki klan ma zwykle około 100 osób, co powoduje, że strona obecnie ładuje się około 12/15 sekund. Chciałbym to jakoś zoptymalizować, jeżeli się da, ale nie wiem jak.
Cały kod:
<html>
<head>
<script>
window.addEventListener("load", function(){
var load_screen = document.getElementById("load_screen");
document.body.removeChild(load_screen);
});
</script>
</head>
<body>
<div id="load_screen"><div id="loading"><center><h1><b>Wczytuję</b></h1><br><img src="../eu/img/Preloader_11.gif" height="40%"></center></div></div>
</body>
</html>
<?php
echo '<form action="page.php" method="post">
<input type="text" name="klan_name" placeholder="Klan Tag" maxlength="5" minlength="2" />
<input type="submit" name="szukaj" value="Szukaj" />
</form>';
if(isset($_POST['szukaj'])){
$position9k = file_get_contents('https://api.worldoftanks.eu/wot/globalmap/eventaccountratings/?application_id=id_aplikacji&event_id=fire_trail&front_id=fire_trail_bg&limit=10&page_no=800');
$miejsce_nagroda = json_decode($position9k, true);
$points_9k = $miejsce_nagroda['data'][9]['fame_points'];
$klan = $_POST['klan_name'];
$klan = htmlentities($klan);
$klan = trim($klan);
$szukamy_klanu = file_get_contents('https://api.worldoftanks.eu/wot/clans/list/?application_id=id_aplikacji&search='.$klan.'&limit=1&language=en');
$decodedklan = json_decode($szukamy_klanu, true);
foreach($decodedklan['data'] as $klan_tag){
$klan_id = $klan_tag['clan_id'];
}
$json = file_get_contents('https://api.worldoftanks.eu/wot/clans/info/?application_id=id_aplikacji&clan_id='.$klan_id.'');
$decodedJson = json_decode($json, true);
foreach ($decodedJson['data'] as $liczba_graczy) {
$liczba_czlonkow_klanu = $liczba_graczy['members_count'];
}
$x = 0;
for($x=0; $x < $liczba_czlonkow_klanu; $x+1){
foreach ($decodedJson['data'] as $klan_info) {
$gracz = $klan_info['members'][$x]['account_name'];
$gracz_id = $klan_info['members'][$x]['account_id'];
$player_point = file_get_contents('https://api.worldoftanks.eu/wot/globalmap/eventaccountinfo/?application_id=id_aplikacji&account_id='.$gracz_id.'&event_id=fire_trail&front_id=fire_trail_bg');
$decodedpoints = json_decode($player_point, true);
foreach ($decodedpoints['data'] as $player_points) {
echo $player_points['events']['fire_trail'][0]['fame_points'];
echo '<br />';
}
$x = $x+1;
}
}
}
?>