{% else-1 %}
Обновить | Подписаться | Поднять тему
Чтобы выполнить действие авторизируйтесь или пройдите регистрацию на сайте.
1.
Playtox * 1.63
[автор] (15 фев 2016, 16:25) [0/0] [0] [отв] [спам] [под] +1 | -1

Есть сайт survach.ru
На нём не большой парсер данных с API, но загрузка сайта слишком долгая, подскажите как ускорить загрузку?

Код:

[cit]equire "inc/head.php";
require_once 'api/autoload.php';
$api = new Survarium\Api\SurvariumApi('test', 'test');

$clanAmounts = $api->getClanAmounts()['data'];

function print_arr($arr){
echo "<pre>", print_r($arr,true), "</pre>";
}

function yandex_link_bar($page, $count, $pages_count, $show_link)
{
if ($pages_count == 1) return false;
$sperator = ' | ';
$begin = $page - intval($show_link / 2);
unset($show_dots);
if ($pages_count <= $show_link + 1) $show_dots = 'no';
if (($begin > 2) && ($pages_count - $show_link > 2)) {
echo '<a href='.$_SERVER['php_self'].'?page=1> |< </a> ';
}
for ($j = 0; $j <= $show_link; $j++)
{
$i = $begin + $j;
if ($i < 1) continue;
if (!isset($show_dots) && $begin > 1) {
echo ' <a href='.$_SERVER['php_self'].'?page='.($i-1).'><b>...</b></a> ';
$show_dots = "no";
}
if ($i > $pages_count) break;
if ($i == $page) {
echo ' <a ><b>'.$i.'</b></a> ';
} else {
echo ' <a href='.$_SERVER['php_self'].'?page='.$i.'>'.$i.'</a> ';
}
if (($i != $pages_count) && ($j != $show_link)) echo $sperator;
if (($j == $show_link) && ($i < $pages_count)) {
echo ' <a href='.$_SERVER['php_self'].'?page='.($i+1).'><b>...</b></a> ';
}
}
if ($begin + $show_link + 1 < $pages_count) {
echo ' <a href='.$_SERVER['php_self'].'?page='.$pages_count.'> >| </a>';
}
return true;
}

$perpage = 20;
if (empty($_GET['page']) || ($_GET['page'] <= 0)) {
$page = 1;
} else {
$page = (int) $_GET['page'];
}
$count = $clanAmounts[amount];
$pages_count = ceil($count / $perpage);
if ($page > $pages_count) $page = $pages_count;
$start_pos = ($page - 1) * $perpage;





echo "<div class='stringClan' style=' background-image: url(/css/h-707.jpg);'>Кланы мира SURVARIUM </br>
$clanAmounts[amount]
</div>";

echo "<div style='display: -webkit-flex;'>";
echo'<div class="clanTop">
<table class="matchTable">

<thead style="background-color: #1E1E1E;">
<th id="rowlvlClan">id</th>
<th id="rowTagClan">Тег</th>
<th id="rowNameClan">Название</th>
<th id="rowReitClan">Рейтинг</th>
<th id="rowCommanderClan">Командир</th>

</thead>';
foreach($api->getClans(20,$start_pos)['data']['clans_data'] AS $ids => $names){
sleep(1);
$clan = $api->getClanInfo($ids)['data']['clan_info'];
$commanderName = $api->getNicknamesByPublicIds([$clan['commander_pid']])['data']['nicknames'][$clan['commander_pid']];
echo'
<tbody>
<tr>
<td>'.$ids.'</td>
<td><b><a href="clan?id='.$ids.'">['.$clan['abbreviation'].']</a></b></td>
<td id="nameClan"><a href="clan?id='.$ids.'">'.$names.'</a></td>
<td>'.$clan['elo'].'</td>
<td>'.$commanderName.'</td>
</tr>

</tbody>
';

}
echo'</table>';


echo"<div style='text-align: center; padding: 12px; background-color: #252525;'>";
yandex_link_bar($page, $count, $pages_count, 10);
echo"</div>";
echo'</div>';[/cit]

2.
Mobiaaa * Верифицирован 2.73
(15 фев 2016, 16:35) [0/0] [0] [отв] [спам] [под] +1 | -1

Донор долго отвечает "survach.ru"
Ускорить можно только закешировав данные на пол часа к примеру, или насколько это возможно, чтобы не сильно навредить скрипту
А обновлять кроном, тогда со стороны пользователя не будут "висы"

3.
Playtox * 1.63
[автор] (15 фев 2016, 18:12) [0/0] [0] [отв] [спам] [под] +1 | -1

Mobiaaa, survach.ru это не донор, на нём и висит этот скрипт.

4. (15 фев 2016, 18:52) [0/0] [0] [отв] [спам] [под] +1 | -1
Playtox,

Ну это не донор, а кто донор?
require_once 'api/autoload.php';
Эта строка не зря же тут присутствует, значит есть внешнее подключение, отсюда и пляшите

5.
Playtox * 1.63
[автор] (15 фев 2016, 19:00) [0/0] [0] [отв] [спам] [под] +1 | -1

scorpion82, вот донор https://github.com/PhpSurvarium/SurvariumAPI

6. (15 фев 2016, 19:04) [0/0] [0] [отв] [спам] [под] +1 | -1
Playtox,

Ну так mobiaaa верно подсказал проблему, данные с донора долго подгружаются. Копайте в этом направлении или же КЭш, как вариант

7.
Mobiaaa * Верифицирован 2.73
(15 фев 2016, 21:52) [0/0] [0] [отв] [спам] [под] +1 | -1
Playtox,

замерьте время генерации между запросом к донору и ответом
Если время большое, то только кешировать.
Если же время маленькое, то копать сам скрипт, измеряя время генерации в различных участках кода
Но я с уверенностью в 99% могу сказать, что долго донор отвечает, и логичнее всего кешировать в базу например

8.
Playtox * 1.63
[автор] (15 фев 2016, 23:12) [0/0] [0] [отв] [спам] [под] +1 | -1

Mobiaaa, Не потходит, т.к стоит постраничный вывод, а кеширует всего 1ну страницу

9.
Mobiaaa * Верифицирован 2.73
(15 фев 2016, 23:36) [0/0] [0] [отв] [спам] [под] +1 | -1

Playtox, Ну так в чём проблема извлечь все данные, кинуть их в базу, и потом уже с постраничной навигацией выводить с базы? *

10.
Playtox * 1.63
[автор] (16 фев 2016, 00:45) [0/0] [0] [отв] [спам] [под] +1 | -1

Mobiaaa, Всех кланов около 14к и каждый день они добавляются. Как я смогу все это импортировать, много(

Чтобы писать сообщения авторизируйтесь или пройдите регистрацию на сайте.
Подписаны: 1
Скачать тему | Файлы темы | Фильтр сообщений