jqGrid — популярная библиотека JavaScript, используемая для создания адаптивных и интерактивных сеток данных в веб-приложениях. Одной из его мощных функций является опция «loadonce», которая позволяет загружать данные с сервера только один раз, а затем выполнять все последующие операции на стороне клиента. В этой статье мы рассмотрим различные методы и приемы использования функции loadonce в jqGrid, повышающей эффективность загрузки данных.
Метод 1: базовая реализация
Давайте начнем с базовой реализации функции «loadonce» в jqGrid. В этом примере мы предполагаем, что данные сетки извлекаются с сервера с помощью запроса AJAX.
$("#grid").jqGrid({
url: "data.php",
datatype: "json",
loadonce: true,
// Rest of the grid configuration...
});
Установив для параметра «loadonce» значение true, jqGrid будет загружать данные с сервера только один раз, а затем сохранять их локально. Все последующие операции, такие как сортировка, фильтрация и разбиение по страницам, будут выполняться на стороне клиента без дополнительных запросов к серверу.
Метод 2: предварительная загрузка данных
В некоторых случаях может потребоваться предварительная загрузка данных в сетку перед их отображением пользователю. Этого можно добиться, используя параметр dataвместо параметра url.
$("#grid").jqGrid({
data: myData, // Preloaded data
datatype: "local",
loadonce: true,
// Rest of the grid configuration...
});
Здесь myDataпредставляет массив JSON, содержащий данные сетки. Установив для параметра datatypeзначение "local", мы сообщаем jqGrid, что данные уже присутствуют на стороне клиента.
Метод 3: динамические обновления данных
Функция «loadonce» не ограничивает вас в динамическом обновлении данных сетки. Вы можете добавлять, удалять или изменять строки в сетке без дополнительных запросов к серверу.
// Add a new row
$("#grid").jqGrid("addRowData", rowId, rowData);
// Remove a row
$("#grid").jqGrid("delRowData", rowId);
// Update a row
$("#grid").jqGrid("setRowData", rowId, rowData);
Используя соответствующие методы jqGrid, вы можете манипулировать данными сетки по мере необходимости.
Метод 4: сортировка и фильтрация
jqGrid предоставляет встроенные методы для сортировки и фильтрации данных сетки на стороне клиента.
// Sort by a column
$("#grid").jqGrid("sortGrid", columnName, sortOrder);
// Filter rows
$("#grid").jqGrid("filterToolbar", { defaultSearch: "cn" });
Вызывая эти методы, вы можете легко реализовать функции сортировки и фильтрации без дополнительных запросов к серверу.
Функция loadonce в jqGrid предлагает мощный способ повысить эффективность загрузки данных в веб-приложениях. Загрузив данные с сервера всего один раз и выполняя последующие операции на стороне клиента, вы можете значительно улучшить пользовательский опыт. В этой статье мы рассмотрели несколько методов использования этой функции, включая базовую реализацию, предварительную загрузку данных, динамические обновления данных и сортировку/фильтрацию. Включение этих методов в вашу реализацию jqGrid обеспечит плавную и эффективную обработку данных.