Правильно ли понял, что когда я нажму на "Страница 2" в ListView, обернутый в Pjax, то произойдет следующее:
1) Идет ajax-запрос к текущему action с новым GET-параметром page = 2
2) Pjax получает ВСЮ текущуя страницу <html>....</html>, в том числе скрипты и стили.
3) Происходит парсинг этого документе, ищется тот блок, который обернут в Pjax
4) Блок обнаруживается и возвращается ajax-ом, заменяя старое содержимое
Да?
Как работает pjax
-
- Сообщения: 26
- Зарегистрирован: 2018.03.02, 09:19
Re: Как работает pjax
Да, всю, но можно рендрить только нужную часть, если запрос Pjax
if(Yii::$app->request->isPjax) {...}
if(Yii::$app->request->isPjax) {...}
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.
Re: Как работает pjax
Нет, нет там парсинга.
Виджет сам секет что если это pjax запрос, то вернуть данные.
https://github.com/yiisoft/yii2/blob/ma ... x.php#L173
Виджет сам секет что если это pjax запрос, то вернуть данные.
https://github.com/yiisoft/yii2/blob/ma ... x.php#L173
-
- Сообщения: 26
- Зарегистрирован: 2018.03.02, 09:19
Re: Как работает pjax
Например, есть статья, а под ней комменты, которые можно листать pjax-ом. Если сделается запрос на эту же страницу, то заново выполнится sql-запрос SELECT статьи, и выполнятся прочие действия, инкремент количества просмотров статьи - а все это мне не нужно. Было бы здорово, если бы выполнилось только то, что нужно - один лишь sql запрос к комментам.
Re: Как работает pjax
было бы неплохо уточнять вопрос ДО ответов на него, а не наоборот.imyapolzovatelya писал(а): ↑2018.07.19, 16:09 Например, есть статья, а под ней комменты, которые можно листать pjax-ом. Если сделается запрос на эту же страницу, то заново выполнится sql-запрос SELECT статьи, и выполнятся прочие действия, инкремент количества просмотров статьи - а все это мне не нужно. Было бы здорово, если бы выполнилось только то, что нужно - один лишь sql запрос к комментам.
Re: Как работает pjax
Действительно...maleks писал(а): ↑2018.07.19, 14:40 Нет, нет там парсинга.
Виджет сам секет что если это pjax запрос, то вернуть данные.
https://github.com/yiisoft/yii2/blob/ma ... x.php#L173
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.
Re: Как работает pjax
Можно проверить запрос, если pjax, то не делать ненужных действийimyapolzovatelya писал(а): ↑2018.07.19, 16:09 Например, есть статья, а под ней комменты, которые можно листать pjax-ом. Если сделается запрос на эту же страницу, то заново выполнится sql-запрос SELECT статьи, и выполнятся прочие действия, инкремент количества просмотров статьи - а все это мне не нужно. Было бы здорово, если бы выполнилось только то, что нужно - один лишь sql запрос к комментам.
Код: Выделить всё
if(!Yii::$app->getRequest()->getIsPjax()) {
$model->updateCounter(['views' => 1]);
}