Pjax

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
psevdo
Сообщения: 96
Зарегистрирован: 2013.04.10, 11:10

Pjax

Сообщение psevdo »

Здравствуйте. Есть у меня страница. На ней GridView обернутый в Pjax

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

Pjax::begin([
    'timeout' => 10000,
    'id' => 'programs'
])
echo GridView::widget(...);
Pjax::end()
Есть столбец с кнопками для редактирования и удаления записей. Когда кликаю на кнопку редактирования, у меня открывается модальное окно (use yii\bootstrap\Modal;).
В модальном окне создается форма, которая оборачивается в Pjax:

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

$pjaxId = ($model->isNewRecord)? 'programPjax' : 'programPjax_'.$model->id;
Pjax::begin(['id' => $pjaxId]);
 
Соответственно для каждого модального окна я добавляю вот такой скрипт:

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

$script = '
    $("#programPjax_'.$model->id.'").on("pjax:end", function() {
        $.pjax.reload({container:"#programs", "timeout" : 50000});  //Reload GridView
    });
';
$this->registerJs($script, yii\web\View::POS_READY);
Тут вроде все нормально. Нажимаю в первый раз кнопку сохранения. Смотрю в отладчике: вначале идет запрос на сохранение формы, потом на обновление страницы.
Нажимаю во второй раз.. Теперь ситуация немного меняется. У меня появляется один запрос на сохранение формы и ДВА запроса на обновление страницы.
Нажимаю в третий раз.. Появляется один запрос на сохранение формы и Четыре запроса на обновление страницы.

Что за штука такая странная??
psevdo
Сообщения: 96
Зарегистрирован: 2013.04.10, 11:10

Re: Pjax

Сообщение psevdo »

Не смог до конца разобраться. В итоге поставил костыль. Но есть еще один момент. Помогите пожалуйста отловить окончание обновления GridView.
Аватара пользователя
flashimage
Сообщения: 1517
Зарегистрирован: 2011.01.23, 12:43

Re: Pjax

Сообщение flashimage »

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

$('#blablalba').on('pjax:complete', function () {
   
}); 
я вот только не понял - вы же пользуете уже похожий код
Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
Yii2-dev
Сообщения: 112
Зарегистрирован: 2016.02.09, 04:35

Re: Pjax

Сообщение Yii2-dev »

psevdo писал(а):Здравствуйте. Есть у меня страница. На ней GridView обернутый в Pjax

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

Pjax::begin([
    'timeout' => 10000,
    'id' => 'programs'
])
echo GridView::widget(...);
Pjax::end()
 
Есть столбец с кнопками для редактирования и удаления записей. Когда кликаю на кнопку редактирования, у меня открывается модальное окно (use yii\bootstrap\Modal;).
В модальном окне создается форма, которая оборачивается в Pjax:

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

$pjaxId = ($model->isNewRecord)? 'programPjax' : 'programPjax_'.$model->id;
Pjax::begin(['id' => $pjaxId]);
Соответственно для каждого модального окна я добавляю вот такой скрипт:

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

$script = '
    $("#programPjax_'.$model->id.'").on("pjax:end", function() {
        $.pjax.reload({container:"#programs", "timeout" : 50000});  //Reload GridView
    });
';
$this->registerJs($script, yii\web\View::POS_READY);
 
Тут вроде все нормально. Нажимаю в первый раз кнопку сохранения. Смотрю в отладчике: вначале идет запрос на сохранение формы, потом на обновление страницы.
Нажимаю во второй раз.. Теперь ситуация немного меняется. У меня появляется один запрос на сохранение формы и ДВА запроса на обновление страницы.
Нажимаю в третий раз.. Появляется один запрос на сохранение формы и Четыре запроса на обновление страницы.

Что за штука такая странная??

Похоже что в Yii2 Pjax не работает должным образом. Есть момент, которые заставляют волосы дыбом вставать,от происходящего. Да-да, конечно, можно костылёчками заправить код, а по другому не известно как.
Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

Re: Pjax

Сообщение Onotole »

Чем Pjax от Yii отличается от другого Pjax?
Yii2-dev
Сообщения: 112
Зарегистрирован: 2016.02.09, 04:35

Re: Pjax

Сообщение Yii2-dev »

Onotole писал(а):Чем Pjax от Yii отличается от другого Pjax?
Ну смотрите к примеру:
Если переходить по ссылке - http://мой хост/basic/web/index.php?r=site/say или любой другой подобной из офф.мануала или откуда-нибудь еще, все равно -- То будет дергаться favicon сайта. Вы знаете почему это происходит? Или вам все равно, дергается она, или нет?
andrei.obuhovski
Сообщения: 610
Зарегистрирован: 2015.07.16, 10:50

Re: Pjax

Сообщение andrei.obuhovski »

Ничего не дергается: http://nix-tips.ru/examples/yii2pjax/ph ... dex?page=1
Yii2-dev
Сообщения: 112
Зарегистрирован: 2016.02.09, 04:35

Re: Pjax

Сообщение Yii2-dev »

Onotole писал(а):Чем Pjax от Yii отличается от другого Pjax?
Вы перейдите с одной ссылки на другую, с одной страницы на другую, а не обновляйте одну и туже часть.
Vaaliti
Сообщения: 1
Зарегистрирован: 2016.02.23, 10:41

Re: Pjax

Сообщение Vaaliti »

andrei.obuhovski писал(а):Ничего не дергается: http://nix-tips.ru/examples/yii2pjax/ph ... dex?page=1
У меня тоже дергается, я думал что это так и должно быть...
andrei.obuhovski
Сообщения: 610
Зарегистрирован: 2015.07.16, 10:50

Re: Pjax

Сообщение andrei.obuhovski »

Если вы обернули весь html в Pjax, то у вас все и будет перегружаться)
Yii2-dev
Сообщения: 112
Зарегистрирован: 2016.02.09, 04:35

Re: Pjax

Сообщение Yii2-dev »

andrei.obuhovski писал(а):Если вы обернули весь html в Pjax, то у вас все и будет перегружаться)
Не-не не))) Вы работали с navbar сайта через Pjax? Это ваш проект , кстати?
andrei.obuhovski
Сообщения: 610
Зарегистрирован: 2015.07.16, 10:50

Re: Pjax

Сообщение andrei.obuhovski »

Изображение
Yii2-dev
Сообщения: 112
Зарегистрирован: 2016.02.09, 04:35

Re: Pjax

Сообщение Yii2-dev »

andrei.obuhovski писал(а):Изображение
1. Ну так правильно, вы же фильтруете запрос) А вот без фильтра, вырисовывается другая картина.

или

2.Вы используете html тег через helper class yii2. А вот попробуйте через чистый html

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

<a href="http://m_yhost/"> 
Yii2-dev
Сообщения: 112
Зарегистрирован: 2016.02.09, 04:35

Re: Pjax

Сообщение Yii2-dev »

andrei.obuhovski писал(а):Изображение
Да, кстати, добавьте третью страницу с ActiveForm. Вот. Все зависеть будет от двух факторов.
andrei.obuhovski
Сообщения: 610
Зарегистрирован: 2015.07.16, 10:50

Re: Pjax

Сообщение andrei.obuhovski »

Причем тут форма, и причем тут хелпер к иконке?
Cache-control лучше попробуйте включить
Yii2-dev
Сообщения: 112
Зарегистрирован: 2016.02.09, 04:35

Re: Pjax

Сообщение Yii2-dev »

andrei.obuhovski писал(а):Причем тут форма, и причем тут хелпер к иконке?
Cache-control лучше попробуйте включить
Не-не-не...


Терпение, мой друг. Просто добавьте третью страницу с формой ActiveForm.
i-programmer
Сообщения: 101
Зарегистрирован: 2015.08.24, 18:50

Re: Pjax

Сообщение i-programmer »

psevdo писал(а): Нажимаю во второй раз.. Теперь ситуация немного меняется. У меня появляется один запрос на сохранение формы и ДВА запроса на обновление страницы.
Нажимаю в третий раз.. Появляется один запрос на сохранение формы и Четыре запроса на обновление страницы.

Что за штука такая странная??
Yii2-dev писал(а):Похоже что в Yii2 Pjax не работает должным образом. Есть момент, которые заставляют волосы дыбом вставать,от происходящего. Да-да, конечно, можно костылёчками заправить код, а по другому не известно как.

pjax и yii2 тут вообще не причем. Точнее pjax почти не причем.... это все отголоски JS в целом...
Если бы вы раньше изучали сий язык вы это знали бы))

Потому что на каждый .on("click", , которым вы вызываете модальное окно у тебя добавляется новый обработчик $(document).on("click", "YOUR_SELECTOR", следовательно если открывать и закрывать окно и нажмимать на кнопку, то событие будет вызываться каждый раз на 1 раз больше.

Лечится это через unbind

Метод необходим для удаления обработчиков событий, установленных на выбранных элементах методами bind(), one() или методами с узким назначением (click(), focus() и.т.д)

Так что прошу не гнать на фреймворк и pjax....... Как говорится чего зеркало пинять, коли рожа крива :lol:
Yii2-dev
Сообщения: 112
Зарегистрирован: 2016.02.09, 04:35

Re: Pjax

Сообщение Yii2-dev »

i-programmer писал(а):
psevdo писал(а): Нажимаю во второй раз.. Теперь ситуация немного меняется. У меня появляется один запрос на сохранение формы и ДВА запроса на обновление страницы.
Нажимаю в третий раз.. Появляется один запрос на сохранение формы и Четыре запроса на обновление страницы.

Что за штука такая странная??
Yii2-dev писал(а):Похоже что в Yii2 Pjax не работает должным образом. Есть момент, которые заставляют волосы дыбом вставать,от происходящего. Да-да, конечно, можно костылёчками заправить код, а по другому не известно как.

pjax и yii2 тут вообще не причем. Точнее pjax почти не причем.... это все отголоски JS в целом...
Если бы вы раньше изучали сий язык вы это знали бы))

Потому что на каждый .on("click", , которым вы вызываете модальное окно у тебя добавляется новый обработчик $(document).on("click", "YOUR_SELECTOR", следовательно если открывать и закрывать окно и нажмимать на кнопку, то событие будет вызываться каждый раз на 1 раз больше.

Лечится это через unbind

Метод необходим для удаления обработчиков событий, установленных на выбранных элементах методами bind(), one() или методами с узким назначением (click(), focus() и.т.д)

Так что прошу не гнать на фреймворк и pjax....... Как говорится чего зеркало пинять, коли рожа крива :lol:
Кривая, от pjax в yii2. Куда лучше использовать чистый pjax. Эти яблоки куда вкуснее, чем красивые, большие, привлекательные, но червивые персики, pjax in Yii2 :lol:
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Pjax

Сообщение zelenin »

Onotole писал(а):Чем Pjax от Yii отличается от другого Pjax?
pjax yii является форком pjax
Ответить