Класс yii\widgets\Pjax
| Наследование | yii\widgets\Pjax » yii\base\Widget » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable, yii\base\ViewContextInterface |
| Доступно с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/widgets/Pjax.php |
Pjax — это виджет, интегрирующий плагин jQuery pjax.
Pjax работает только с содержимым, заключённым между вызовами begin() и end(), называемым содержимым тела виджета. По умолчанию, любой клик по ссылке или отправка формы (для форм с атрибутом data-pjax ) внутри содержимого тела будет запускать AJAX-запрос. В ответ на AJAX-запрос Pjax отправит обновлённое содержимое тела (на основе AJAX-запроса) клиенту, который заменит старое содержимое новым. Адрес браузера затем будет обновлён с помощью pushState. Весь процесс не требует перезагрузки макета или ресурсов (js, css).
Вы можете настроить $linkSelector для указания, какие ссылки должны запускать pjax, и настроить $formSelector для указания, какая отправка форм может запускать pjax.
Вы можете отключить pjax для определённой ссылки внутри контейнера, добавив атрибут data-pjax="0" к этой ссылке.
Следующий пример показывает, как использовать Pjax с виджетом yii\grid\GridView, чтобы постраничная навигация, сортировка и фильтрация грида могли выполняться с помощью pjax:
use yii\widgets\Pjax; Pjax::begin(); echo GridView::widget([...]); Pjax::end();
Публичные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $autoIdPrefix | string | Префикс к автоматически сгенерированным идентификаторам виджета. | yii\widgets\Pjax |
| $behaviors | yii\base\Behavior[] | Список поведений, прикреплённых к этому компоненту | yii\base\Component |
| $clientOptions | array | Дополнительные параметры, передаваемые плагину pjax JS. | yii\widgets\Pjax |
| $counter | integer | Счётчик, используемый для генерации $id для виджетов. | yii\widgets\Pjax |
| $enablePushState | boolean | Включить ли push state. | yii\widgets\Pjax |
| $enableReplaceState | boolean | Включить ли replace state. | yii\widgets\Pjax |
| $formSelector | string|false | jQuery селектор форм, отправка которых должна запускать pjax запросы. | yii\widgets\Pjax |
| $id | string | Идентификатор виджета. | yii\base\Widget |
| $linkSelector | string|false | jQuery селектор ссылок, которые должны запускать pjax запросы. | yii\widgets\Pjax |
| $options | array | Атрибуты HTML для тега контейнера виджета. | yii\widgets\Pjax |
| $scrollTo | boolean|integer | Как прокручивать страницу при получении ответа pjax. | yii\widgets\Pjax |
| $stack | yii\base\Widget[] | Виджеты, которые в данный момент отрисовываются (не завершены). | yii\base\Widget |
| $submitEvent | string | jQuery событие, которое запустит обработчик формы. | yii\widgets\Pjax |
| $timeout | integer | Настройка таймаута pjax (в миллисекундах). | yii\widgets\Pjax |
| $view | yii\web\View | Объект представления, который можно использовать для отрисовки представлений или файлов представления. | yii\base\Widget |
| $viewPath | string | Директория, содержащая файлы представления для этого виджета. | yii\base\Widget |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Object |
| __clone() | Этот метод вызывается после создания объекта путём клонирования существующего. | yii\base\Component |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства объекта. | yii\base\Object |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Object |
| __set() | Устанавливает значение свойства объекта. | yii\base\Object |
| __unset() | Устанавливает свойство объекта в значение null. | yii\base\Object |
| afterRun() | Этот метод вызывается сразу после выполнения виджета. | yii\base\Widget |
| attachBehavior() | Присоединяет поведение к данному компоненту. | yii\base\Component |
| attachBehaviors() | Присоединяет список поведений к компоненту. | yii\base\Component |
| beforeRun() | Этот метод вызывается сразу перед выполнением виджета. | yii\base\Widget |
| begin() | Начинает работу виджета. | yii\base\Widget |
| behaviors() | Возвращает список поведений, по которым должен вести себя данный компонент. | yii\base\Component |
| canGetProperty() | Возвращает значение, указывающее, можно ли считать свойство. | yii\base\Object |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Object |
| className() | Возвращает полное квалифицированное имя этого класса. | yii\base\Object |
| detachBehavior() | Отсоединяет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Отсоединяет все поведения от компонента. | yii\base\Component |
| end() | Заканчивает работу виджета. | yii\base\Widget |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), присоединены к этому компоненту. | yii\base\Component |
| getBehavior() | Возвращает объект именованного поведения. | yii\base\Component |
| getBehaviors() | Возвращает все поведения, присоединённые к данному компоненту. | yii\base\Component |
| getId() | Возвращает идентификатор виджета. | yii\base\Widget |
| getView() | Возвращает объект представления, который можно использовать для рендеринга представлений или файлов представлений. | yii\base\Widget |
| getViewPath() | Возвращает каталог, содержащий файлы представлений для этого виджета. | yii\base\Widget |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли обработчик, прикрепленный к именованному событию. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Object |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство. | yii\base\Object |
| init() | Инициализирует объект. | yii\widgets\Pjax |
| off() | Отсоединяет существующий обработчик событий от этого компонента. | yii\base\Component |
| on() | Прикрепляет обработчик событий к событию. | yii\base\Component |
| registerClientScript() | Регистрирует необходимый JavaScript. | yii\widgets\Pjax |
| render() | Рендерит представление. | yii\base\Widget |
| renderFile() | Рендерит файл представления. | yii\base\Widget |
| run() | Выполняет виджет. | yii\widgets\Pjax |
| setId() | Устанавливает идентификатор виджета. | yii\base\Widget |
| setView() | Устанавливает объект представления, который будет использоваться этим виджетом. | yii\base\Widget |
| trigger() | Вызывает событие. | yii\base\Component |
| widget() | Создаёт экземпляр виджета и запускает его. | yii\base\Widget |
Защищенные методы
| Метод | Описание | Определено в |
|---|---|---|
| requiresPjax() | yii\widgets\Pjax |
События
| Событие | Тип | Описание | Определено в |
|---|---|---|---|
| EVENT_AFTER_RUN | yii\base\WidgetEvent | Событие, генерируемое сразу после выполнения виджета. (доступно начиная с версии 2.0.11) | yii\base\Widget |
| EVENT_BEFORE_RUN | yii\base\WidgetEvent | Событие, генерируемое сразу перед выполнением виджета. (доступно начиная с версии 2.0.11) | yii\base\Widget |
| EVENT_INIT | yii\base\Event | Событие, генерируемое при инициализации виджета с помощью init(). (доступно начиная с версии 2.0.11) | yii\base\Widget |
Подробное описание свойств
$autoIdPrefix общедоступное статическое свойство
Префикс для автоматически сгенерированных идентификаторов виджетов.
public static string $autoIdPrefix = 'p'
$clientOptions общедоступное свойство
Дополнительные параметры, которые нужно передать в плагин pjax JS. Обратитесь к странице проекта pjax для получения доступных параметров.
public array $clientOptions = null
$counter общедоступное статическое свойство
Счётчик, используемый для генерации $id для виджетов.
public static integer $counter = 0
$enablePushState общедоступное свойство
Включить ли push state.
public boolean $enablePushState = true
$enableReplaceState общедоступное свойство
Включить ли replace state.
public boolean $enableReplaceState = false
$formSelector общедоступное свойство
Селектор jQuery форм, отправка которых должна вызывать запросы pjax. Если не задано, все формы с data-pjax атрибутом внутри содержащегося контента Pjax будут вызывать запросы pjax. Если установлено в false, никакой код не будет зарегистрирован для обработки форм. Обратите внимание, что если ответ на запрос pjax является полной страницей, то нормальный запрос будет отправлен снова.
public string|false $formSelector = null
$linkSelector общедоступное свойство
Выборщик jQuery для ссылок, которые должны вызывать запросы pjax. Если не задано, все ссылки внутри заключенного содержимого Pjax будут вызывать запросы pjax. Если установлено в false, никакой код не будет зарегистрирован для обработки ссылок. Обратите внимание, что если ответ на запрос pjax — полная страница, то будет отправлен обычный запрос.
public string|false $linkSelector = null
$options общественное свойство
Атрибуты HTML для тега контейнера виджета. Распознаются следующие специальные опции:
-
tag: строка, имя тега для контейнера. По умолчаниюdivЭта опция доступна начиная с версии 2.0.7. См. также yii\helpers\Html::tag().
См. также yii\helpers\Html::renderTagAttributes() для получения подробной информации о том, как рендерятся атрибуты.
public array $options = []
$scrollTo общественное свойство
Способ прокрутки страницы при получении ответа pjax. Если false, прокрутка страницы не будет выполнена. Используйте число, если нужно прокрутить до определённого места.
public boolean|integer $scrollTo = false
$submitEvent общественное свойство (доступно начиная с версии 2.0.9)
Событие jQuery, которое будет запускать обработчик формы. По умолчанию "submit".
public string $submitEvent = 'submit'
$timeout общественное свойство
Настройка таймаута pjax (в миллисекундах). Этот таймаут используется при выполнении AJAX-запросов. Используйте большее число, если ваш сервер медленный. Если сервер не отвечает в течение таймаута, будет выполнена полная загрузка страницы.
public integer $timeout = 1000
Подробное описание методов
init() общественный метод
Инициализирует объект.
Этот метод вызывается в конце конструктора. Стандартная реализация вызовет событие EVENT_INIT.
| public void init ( ) |
|---|
registerClientScript() общественный метод
Регистрирует необходимый JavaScript.
| public void registerClientScript ( ) |
|---|
requiresPjax() защищённый метод
| protected boolean requiresPjax ( ) | ||
|---|---|---|
| return | boolean |
Требуется ли от данного виджета ответ pjax для текущего запроса |
run() общественный метод
Выполняет виджет.
| public string run ( ) | ||
|---|---|---|
| return | string |
Результат выполнения виджета, который нужно вывести. |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-widgets-pjax.html