![]() |
Здравствуйте, гость ( Вход )
![]() |
![]()
Сообщение
#1
|
|
![]() Стеклянная птица. ![]() Сообщений: 5 197 Регистрация: 10.5.2007 Из: Москва. ![]() ИД на сайте: 80287 Репутация: ![]() ![]() ![]() |
То, что сайт состоит из таблиц видно любому. Некоторые пользуются пересортировкой колонок в этих таблицах, некоторые нет. Но так или иначе, при клике на шапку колонки происходит пересортировка. При этом страница перегенеряется.
Вопрос: почему не сделать пересортировку таблиц скриптом на уровне браузера, а не на уровне сервера, как сейчас? Вот код, который делает подобную вещь. Код /** Функция производит пересортировку произвольной таблицы, выведенной на экран браузера. Повторный клик выполняет обратную сортировку. @param El - Идентификатор сортируемой таблицы @param cell_ident - Номер сортируемой ячейки. */ function resort(El, cell_ident) { if(sort_cell == cell_ident) { sort_order = 1 - sort_order; } else { sort_order = 0; sort_cell = cell_ident; } have_changes = true; tbl = document.getElementById(El); tbl_size = tbl.rows.length; while(have_changes) { have_changes = false; for(i = 1;i < tbl_size - 1;i = i + 1) { need_move = 0; if(sort_order == 0) { need_move = tbl.rows[i].cells[sort_cell].innerHTML < tbl.rows[i + 1].cells[sort_cell].innerHTML; } else { need_move = tbl.rows[i].cells[sort_cell].innerHTML > tbl.rows[i + 1].cells[sort_cell].innerHTML; } if(need_move) { have_changes = true; for(j = 1;j < tbl.rows[i].cells.length; j++) { val = tbl.rows[i].cells[j].innerHTML; tbl.rows[i].cells[j].innerHTML = tbl.rows[i + 1].cells[j].innerHTML; tbl.rows[i + 1].cells[j].innerHTML = val; } } } } } Работает во всех браузерах, кроме Конкверора (просто не проверял). Конечно, этому скрипту требуется доработка для нужд Бутсы, так как сейчас он просто проверяет innerHTML на больше-меньше. Но эта доработка не слишком сложная - требуется добавить массив функций проверки, сортированный по индексу колонки. Хотя бы немного нагрузку на страницу ростера такой механизм снизит. Минус понятен - F5 сбросит сортировку в дефолт. Но, думаю, это не слишком критично. -------------------- |
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 22.7.2025, 12:14 |