Правильное место для звонков в API от Laravel

У меня есть представление в Laravel, которое отвечает за отображение разных данных, полученных от разных вызовов API Twitter. Это код:

TwitterRepository:

 public function getTwitterList($type, $count)
{
list($user, $settings) = $this->twitterConfig();

$url = 'https://api.twitter.com/1.1/'.$type.'/list.json';
$getfield = '?screen_name=' . $user . '&count=' . $count;
$requestMethod = 'GET';
$twitter = new TwitterAPIExchange($settings);
$follow_count = $twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest();

$get_count = json_decode($follow_count, true);

return $get_count;
}
... // Some similar methods

TwitterController:

public function index()
{
$twitterConfig = $this->twitterRepository->getTwitterData();

$twitterFollowers = $twitterConfig['followers_count'];
$twitterFollowing = $twitterConfig['friends_count'];
$twitterCountTweet = $twitterConfig['statuses_count'];
$twitterProfileDescription = $twitterConfig['description'];
$twitterProfileImage = $twitterConfig['followers_count'];

$lastTweets = $this->twitterRepository->getLastTweets();

$twitterFollowingJson = $this->twitterRepository->getTwitterList('friends', 15);
$twitterFollowingList = $twitterFollowingJson['users'];

$twitterFollowersJson = $this->twitterRepository->getTwitterList('followers', 15);
$twitterFollowersList = $twitterFollowersJson['users'];

return view('admin.twitter-index', compact('twitterFollowers', 'twitterFollowing', 'twitterCountTweet',
'twitterProfileDescription', 'twitterProfileImage', 'lastTweets', 'twitterFollowingList', 'twitterFollowersList'));
}

Проблема в том, что для каждого добавляемого мной вызова, чтобы получить другую информацию в том же виде (например, списки людей), логически увеличивается время отклика страницы все больше и больше. Не могли бы вы помочь мне улучшить это?

Большое спасибо.

0

Решение

Единственный реальный способ сократить время отклика для пользователя — это делать вызовы API асинхронно из браузера, а не заставлять их делать ваш сервер.

Рассмотрите возможность построения своего представления таким образом, чтобы при загрузке он отображал «загрузку обратной связи» для пользователя, а затем совершал вызовы API через AJAX, причем каждый раздел отображал содержимое по завершении каждого вызова API.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector