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

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
imyapolzovatelya
Сообщения: 26
Зарегистрирован: 2018.03.02, 09:19

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

Сообщение imyapolzovatelya »

Правильно ли понял, что когда я нажму на "Страница 2" в ListView, обернутый в Pjax, то произойдет следующее:
1) Идет ajax-запрос к текущему action с новым GET-параметром page = 2
2) Pjax получает ВСЮ текущуя страницу <html>....</html>, в том числе скрипты и стили.
3) Происходит парсинг этого документе, ищется тот блок, который обернут в Pjax
4) Блок обнаруживается и возвращается ajax-ом, заменяя старое содержимое
Да?
someweb
Сообщения: 552
Зарегистрирован: 2017.03.09, 10:12

Re: Как работает pjax

Сообщение someweb »

Да, всю, но можно рендрить только нужную часть, если запрос Pjax
if(Yii::$app->request->isPjax) {...}
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: Как работает pjax

Сообщение maleks »

Нет, нет там парсинга.
Виджет сам секет что если это pjax запрос, то вернуть данные.
https://github.com/yiisoft/yii2/blob/ma ... x.php#L173
imyapolzovatelya
Сообщения: 26
Зарегистрирован: 2018.03.02, 09:19

Re: Как работает pjax

Сообщение imyapolzovatelya »

Например, есть статья, а под ней комменты, которые можно листать pjax-ом. Если сделается запрос на эту же страницу, то заново выполнится sql-запрос SELECT статьи, и выполнятся прочие действия, инкремент количества просмотров статьи - а все это мне не нужно. Было бы здорово, если бы выполнилось только то, что нужно - один лишь sql запрос к комментам.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Как работает pjax

Сообщение zelenin »

imyapolzovatelya писал(а): 2018.07.19, 16:09 Например, есть статья, а под ней комменты, которые можно листать pjax-ом. Если сделается запрос на эту же страницу, то заново выполнится sql-запрос SELECT статьи, и выполнятся прочие действия, инкремент количества просмотров статьи - а все это мне не нужно. Было бы здорово, если бы выполнилось только то, что нужно - один лишь sql запрос к комментам.
было бы неплохо уточнять вопрос ДО ответов на него, а не наоборот.
someweb
Сообщения: 552
Зарегистрирован: 2017.03.09, 10:12

Re: Как работает pjax

Сообщение someweb »

maleks писал(а): 2018.07.19, 14:40 Нет, нет там парсинга.
Виджет сам секет что если это pjax запрос, то вернуть данные.
https://github.com/yiisoft/yii2/blob/ma ... x.php#L173
Действительно... :oops:
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.
urichalex
Сообщения: 994
Зарегистрирован: 2015.08.07, 11:03

Re: Как работает pjax

Сообщение urichalex »

imyapolzovatelya писал(а): 2018.07.19, 16:09 Например, есть статья, а под ней комменты, которые можно листать pjax-ом. Если сделается запрос на эту же страницу, то заново выполнится sql-запрос SELECT статьи, и выполнятся прочие действия, инкремент количества просмотров статьи - а все это мне не нужно. Было бы здорово, если бы выполнилось только то, что нужно - один лишь sql запрос к комментам.
Можно проверить запрос, если pjax, то не делать ненужных действий

Код: Выделить всё

if(!Yii::$app->getRequest()->getIsPjax()) {
	$model->updateCounter(['views' => 1]);
}
Ответить