Clusterize.js – легковесный плагин для отображения больших объёмов данных
Основная задача плагина отобразить на странице большой объём данных так, чтобы страница не зависала. Плагин отображает записи которые помещаются в текущую область видимости экрана и их черёд меняется в то время как пользователь прокручивает страницу.
Последнюю версию плагина можно скачать на GitHub или через bower:
bower install clusterize
Далее необходимо подключить плагин:
<link rel="stylesheet" href="bower/clusterize/clusterize.css"> <script src="bower/clusterize/clusterize.min.js"></script>
Использование
Таблица
<!--HTML--> <div class="clusterize"> <table> <thead></thead> </table> <div id="scrollArea" class="clusterize-scroll"> <table> <tbody id="contentArea" class="clusterize-content"> <tr class="clusterize-no-data"> <td>Loading data...</td> </tr> </tbody> </table> </div> </div>
// JavaScript var data = ['<tr>…</tr>', '<tr>…</tr>', …]; var clusterize = new Clusterize({ rows: data, scrollId: 'scrollArea', contentId: 'contentArea' });
Нумерованный список
<!--HTML--> <div id="scrollArea" class="clusterize-scroll"> <ol id="contentArea" class="clusterize-content"> <li class="clusterize-no-data">Loading data...</li> </ol> </div>
// JavaScript var data = ['<li>…</li>', '<li>…</li>', …]; var clusterize = new Clusterize({ rows: data, scrollId: 'scrollArea', contentId: 'contentArea' });
Ненумерованный список
<!--HTML--> <div id="scrollArea" class="clusterize-scroll"> <ul id="contentArea" class="clusterize-content"> <li class="clusterize-no-data">Loading data...</li> </ul> </div>
// JavaScript var data = ['<li>…</li>', '<li>…</li>', …]; var clusterize = new Clusterize({ rows: data, scrollId: 'scrollArea', contentId: 'contentArea' });
Блок
<!--HTML--> <div id="scrollArea" class="clusterize-scroll"> <div id="contentArea" class="clusterize-content"> <div class="clusterize-no-data">Loading data...</div> </div> </div>
// JavaScript var data = ['<div>…</div>', '<div>…</div>', …]; var clusterize = new Clusterize({ rows: data, scrollId: 'scrollArea', contentId: 'contentArea' });
Настройки
Название | Обязателен | Описание |
data | Да | Массив тегов или строка. Пример: ['<tr><td>First</td></tr>', '<tr><td>Second</td></tr>']; |
scrollId или scrollElem | Да | Id или объект DOM родительского тега, который будет использоваться в качестве области прокрутки. Пример: scrollId: 'scrollArea' или scrollElem: document.getElementById('scrollArea') |
contentId или contentElem | Да | Id или объект DOM куда будет вставлен контент. Пример: contentId: 'contentArea' или contentElem: document.getElementById('contentArea') |
tag | Нет | По идее данный элемент будет сформирован сам при передаче данных плагину. Если данные поступают на страницу не при инициализации, то лучше указать значение экстра-тега. По умолчанию: null |
rows_in_block | Нет | Количество строк в блоке. Если данное значение повышать, то браузер будет более нагружен; если уменьшать, то кластер будет использоваться чаще. Самый лучший вариант - количество строк, которой помещается в одном экране. По умолчанию: 50 |
blocks_in_cluster | Нет | Количество строг в кластере. При прокрутке к последнему блоку, будет подгружен следующий кластер. По умолчанию: 4 |
show_no_data_row | Нет | Отображать или нет строчку с сообщением, если данных не будет предоставлено. По умолчанию: true |
no_data_text | Нет | Текст, который будет отображён в случае, если данных не будет предоставлено. По умолчанию: 'No data' |
no_data_class | Нет | Класс, который будет присвоен если данных не будет предоставлено. По умолчанию: 'clusterize-no-data' |
keep_parity | Нет | Экстра-тег для сохранения очерёдности строк. Полезен при использовании :nth-child(even/odd). По умолчанию: true |
verify_change | Нет | Проверка изменились ли данные перед вставкой в DOM. По умолчанию: false |
Методы
Название | Параметр | Описание |
.update() | Массив | Обновить список новыми данными |
.append() | Массив | Добавить новые данные в список |
.getRowsAmount() | Вернуть общее количество строк | |
.clear() | Очистить список | |
.destroy() | Булево значение | Удаление объекта плагина. Параметры: true - удалить все данные из списка; false - вставляет скрытые данные в список |
Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: http://www.webappers.com/2015/05/04/clusterize-js-a-tiny-plugin-to-display-large-data-sets/
Перевел: Станислав Протасевич
Урок создан: 7 Мая 2015
Просмотров: 11811
Правила перепечатки
5 последних уроков рубрики "jQuery"
-
Анимация набора текста на jQuery
Сегодня мы бы хотели вам рассказать о библиотеке TypeIt — бесплатном jQuery плагине. С её помощью можно имитировать набор текста. Если всё настроить правильно, то можно добиться очень реалистичного эффекта.
-
Временная шкала на jQuery
jQuery плагин для создания временной шкалы.
-
Заметка: Перезагрузка и редирект на JavaScript
Быстрая заметка, где вы сможете найти парочку JS сниппетов для перезагрузки и перенаправления пользователей через JavaScript.
-
Рисуем диаграмму Ганта
jQuery плагин для создания диаграммы Ганта.
-
AJAX и PHP: загрузка файла
Пример того как осуществить загрузку файла через PHP и jQuery ajax.