Skip to content

kachurun/pjax

Repository files navigation

PJAX Loader

Использование:

`let paginator = $(container).pjax({
  pagination: '.pagination-container .pagination a',
  lazyLoad: '.pagination-container .load-more',
  lazyContainer: '.pagination-container',
  query: '',
  params: {},
  specialParams: {},
  method: 'GET',
  cache: {
    enabled: true,
    tll: 60
  },
  callbacks: {
    beforeLoad: function(paginator){ /* Коллбек возвращает инстанс пагинатора, можно использовать его методы, например setParams() */},
    afterLoad: function(paginator){},,
    onError: function(paginator){},
  }
});`

Обязательные парметры:

  • container - элемент контейнера, содержимое которого будет изменяться. Не является параметром :)
  • pagination - элемент постранички, имеющий аттрибут href, обязателен т.к на него вешается событие click, обязательно должен иметь href

Не обязательные параметры:

  • lazyLoad - элемент ссылка, кнопка "показать еще", служит для динамической подгрузки данных в существующий контейнер. Может быть любым элементом, но должен иметь аттрибут 'href'. Должно использоваться совместно с lazyContainer
  • lazyContainer - элемент контейнер, в который будет подгружаться содержимое полученное от сервера после нажатия по lazyLoad элементу
  • lazyDynamic - true/false. Симулирует клик по элементу LazyLoad при прокрутке до этого элемента. Соотв-но два предыдущие параметра обязательны, но lazyLoad элемент можно скрыть с помощью css. Не будет работать если элементы находятся внутри контейнера с overflow: scroll
  • lazyDynamicTimeout - таймаут после которого срабатывает lazyDynamic
  • lazyDynamicDelayedStart - включает отложенный старт постранички (ждет клик по кнопке "еще" от юзера)
  • query - путь к серверу, если указать, то при инициализации плагина будет загружено содержимое с сервера ajax методом ( в противном случае предполагается что контент уже отрендерен на странице )
  • params - параметры запроса, в виде обьекта, {key1:value1, key2:value2} преобразуется к ?key1=value1&key2=value2
  • specialParams - специальные параметры, которые постоянно будут добавляться к запросу. Может использоваться для передачи на сервер информации о том что данные передаются через ajax.
  • method - метод, по умолчанию GET.
  • cache.enabled - включает или отключает кэширование страниц
  • cache.tll - устанавливает время жизни записи в кэш. Значение в секундах

Коллбэки: callbacks.beforeLoad - перед загрузкой данных. Первым аргументом получает обьект pjax со всеми свойствами. callbacks.afterLoad - перед загрузкой данных. Аналогично beforeLoad callbacks.onError - в случае серверной ошибки, когда код ответа != 2xx. Первый аргумент - обьект с ошибкой.


Методы:

  • Для изменения параметров после инициализации плагина:

$(container).pjax('setParams', params, reload);

Аргумент params - обьект с параметрами, обьект аналогичный параметрам плагина описаный выше.
Пример использования:

$('#container').pjax('setParams', { query: '/load_example_list', params: {page: 3} });
загрузит содержимое /load_example_list?page=3 в контейнер #container

paginator.setParams({ lazyLoad: true });
включит ленивую подгрузку

  • Получить сам pjax обьект можно так: $('#container').data('pjax'); так же он возвращается при инициализации и в качестве первого аргумента в коллбэках

About

pjax downloader

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published