Pjax перезагрузка всей страницы
Всем привет друзья. Сегодня у нас речь пойдет про Pjax.
Часто при разработке приложений на Yii2, мы используем компонент Pjax в совокупности с другими компонентами и виджетами. Но бывает ситуация, когда вроде бы компонент Pjax инициализировали, внутри блока описали обновляемый компонент, но при обновлении этого блока через Pjax происходит перезагрузка всей страницы.
Это происходит потому, что у Pjax есть свойство timeout, который установлен в дефолтном значении в 1000мс или 1 сек.
Так как часто происходят моменты касающиеся данного момента, хотел бы сделать некоторый комментарий.
В документации есть честкое определение данного свойства $timeout.
1234567891011121314151617 <?php...* @author Qiang Xue <qiang.xue@gmail.com>* @since 2.0*/class Pjax extends Widget{.../*** @var int pjax timeout setting (in milliseconds). This timeout is used when making AJAX requests.* Use a bigger number if your server is slow. If the server does not respond within the timeout,* a full page load will be triggered.*/public $timeout = 1000;...}?>
В комментарии к Pjax об этом четко прописано:
Этот таймаут используется при выполнении запросов AJAX.
Используйте больший номер, если ваш сервер работает медленно. Если сервер не отвечает в течение таймаута, будет запуще полная загрузка страницы.
Поэтому, если ваш сервер отдает медленные запросы, вы можете описать следующую конструкцию.
Она должна исправить ситуацию с перезагрузкой полной страницы.
Если вы точно не уверены, какое значение timeout установить, вы можно присвоить значение timeout как false.
И ваша проблема с полной перезагрузкой страницы должна исправиться.
1 2 3 |
$(function(){ $.pjax.reload({ container : "#grid", timeout: false}); //Reload GridView }); |
Всем удачи!