@McMike

Как работает pjax?

Поясните, кто хорошо разбирается в вопросе.
В общем случае, Pjax делает запрос и в ответ получает всю страницу целиком, а затем вырезает из нее блок, на который нужно замеить и заменяет им старый блок, так?
Это же совсем не оптимально. Универсально, но выглядит как костыль, а не инструмент.
  • Вопрос задан
  • 8595 просмотров
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Pjax получит то что Вы передадите. Передадите полную страницу - он возьмет только кусок, передадите только кусок - будет оптимальнее. Pjax это js скрипт, он не связан с сервером и понятия не имеет что там происходит. Он ждет ответ из которого надо взять контейнер с определенным селектором.
Соответственно в экшене Вы можете разделить логику на пришел pjax или обычный get и возвращать так или так.
if(Yii::$app->request->isPjax)

Меня вначале в нем тоже многое смущало, я не понимал его степень интеграции в yii. Помогли доки, которые оторваны от yii, конкретно по js плагину Pjax:
https://github.com/yiisoft/jquery-pjax
Пришло понимание, что в yii2 есть виджет для работы с ним и не более того, плюс метод проверки, который я привел выше. И на самом деле более глубокой интеграции и не надо.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
qonand
@qonand
Software Engineer
В общем случае, Pjax делает запрос и в ответ получает всю страницу целиком, а затем вырезает из нее блок, на который нужно заменить и заменяет им старый блок, так?

ну почти, только он получает тот фрагмент кода, который Вы генерируете. Это не целая страница, это может быть какой-то ее фрагмент. Да это не оптимально - но нужно понимать что это в первую очередь универсальное средство для быстрой разработки, на основе которого можно сделать например MVP... а уж если Вам понадобиться все сделать оптимально тогда нужно будет писать свой код конкретно под Вашу задачу
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы