Получение результата работы php скрипта, после загрузки страницы в yii?

Здравствуйте, есть скрипт который обращается к API берет оттуда определенные данные и выводит во вьюхе. Сейчас все это у меня делается в компоненте и таким образом передаю по вьюху:

<?  foreach (Yii::app()->spsr->getCalcDelivery() as $cityName => $city) : ?>
                        <div class="product-body">
                            <div class="num num-box">
                                <input type="text" name="" value="1" class="js-inc-count"/>
                                <a href="" class="plus js-inc-plus"></a>
                                <a href="" class="minus js-inc-minus"></a>
                            </div>
                            <div class="price">
                                <span><?= $item->getEndPrice() ?> руб.</span>
                            </div>

                            <div class="time">
                                <span><span class="test"><?= $city['time']; ?></span> дн.</span>
                            </div>

                            <div class="cart">
                                <button data-stock-id="<?= $city['stock_id'] ?>" href="" class="button js-to-cart">В корзину</button>
                            </div>
                            <? /*
                    <div class="favorite">
                        <a href="" data-id="<?= $item->id; ?>" class="<?= $item->isFavorite() ? 'act' : ''; ?>">В
                            избранное</a>
                    </div>
                    */ ?>
                        </div>
                    <?php endforeach; ?>


Подгружается $city['time'], в компоненте получаем срок и расчитывается средняя время и передается в эту переменную. В итоге страница у меня грузится от 2 - 10 секунд, если попадются закешированные данные то быстро, а если новые, то долго. И хотел узнать, как можно реализовать, насколько понимаю ajax'ом, Чтобы загружалась страница, а после уже происходили вычисления и подгружались во вьюху ? Не совсем понимаю, как это можно реализовать. Спасибо
  • Вопрос задан
  • 506 просмотров
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Ждете окончания загрузки страница, кидаете ajax-ом запрос в заранее подготовленный экшен, там обрабатываете запрос и выдаете, какие-то данные. Или рендерит и отдает какой-то html, например:
public function actionGetMyBlock(){
  return $this->renderAjax('someView',[
                 'data'=>Yii::app()->spsr->getCalcDelivery()
  ]);
}

А сам js например так:
$( document ).ready(function() {
    $('.someContainer').load('/mycontroller/get-my-block');
});

в someView.php
<?php  foreach ($data as $cityName => $city) : ?>
.............
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы