@McMike

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

Поясните, кто хорошо разбирается в вопросе.
В общем случае, Pjax делает запрос и в ответ получает всю страницу целиком, а затем вырезает из нее блок, на который нужно замеить и заменяет им старый блок, так?
Это же совсем не оптимально. Универсально, но выглядит как костыль, а не инструмент.
  • Вопрос задан
  • 8809 просмотров
Решения вопроса 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... а уж если Вам понадобиться все сделать оптимально тогда нужно будет писать свой код конкретно под Вашу задачу
Ответ написан
Ваш ответ на вопрос

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

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