powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Архитектурный вопрос
5 сообщений из 5, страница 1 из 1
Архитектурный вопрос
    #39938141
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть страница с табличными данными, которые отдает сервер.
Строк в таблице много, поэтому к таблице добавлена пагинация.

Вариант 1:
Сервер отдает пустую таблицу (с пустым tbody) и JSON со всеми данными.
Клиентский JS-скрипт заполняет таблицу (добавляет строки в tbody, используя данные из JSON).
При смене страницы скрипт очищает tbody и заполняет таблицу заново (используя фрагмент данных, соответствующих выбранной странице).

Вариант 2:
Сервер отдает заполненную таблицу со всеми данными.
Клиентский JS-скрипт считывает данные из таблицы (в массив), затем очищает страницу и заполняет ее заново фрагментом, соответствующим выбранной странице.

Мне вариант 2 кажется более интересным.
Таблица у меня стилизована через CSS (то есть в HTML-коде только базовая разметка таблицы, без стилей и классов), поэтому оверхед по сравнению с JSON не такой уж и большой. Зато этот вариант будет работать даже в том случае, если на клиентской стороне JS выключен. Ну и менять шаблон страницы будет проще, только в одном месте.

Однако чаще используется вариант 1.
Потому что он проще? Или я какие-то недостатки варианта 2 упускаю?


P.S. Разумеется речь не про таблицы огромного размера (типа КЛАДР), а про таблицы поменьше, где пагинация используется из соображений удобства и внешнего вида, а не вынуждено.
...
Рейтинг: 0 / 0
Архитектурный вопрос
    #39938157
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.
если на клиентской стороне JS выключен.
это что-то из ряда вон... и рассчитывать на такое - только головняки огребать.
Alibek B.
Сервер отдает заполненную таблицу со всеми данными.
тоже не есть хорошее решение - во-первых - куча передаваемых данных за раз - время на открытие страницы. во-вторых - в некоторых случаях это не позволяет секретность не стоит отдавать весь набор данных, даже если он и доступен данному пользователю по частям.
Alibek B.
Клиентский JS-скрипт заполняет таблицу (добавляет строки в tbody, используя данные из JSON).
это лишняя работа для клиента. есть вариант проще - сформировать на сервере уже готовое содержание для тега tbody - готовую html строку. для сервера равнозначно по времени и затратам cpu что формировать json или html строку - и то и другое строка. для клиента - огромная разница - либо вставка одной командой .innerHTML , или работа кучи кода js.
и ещё - для сервера проще отдать данные частями (извлечь из базы) чем одним огромным массивом
...
Рейтинг: 0 / 0
Архитектурный вопрос
    #39938172
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.,

..есть же уже куча JS-фреймворков, или даже просто библиотек, типа knockout.js, которые всё это делают на клиенте через observable arrays или аналоги ... но велосипед поизобретать - тоже полезное дело ... :) .. для общего развития ...
...
Рейтинг: 0 / 0
Архитектурный вопрос
    #39938200
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне быстрее будет сделать свой велосипед, чем разбираться с крупным фреймворком.
...
Рейтинг: 0 / 0
Архитектурный вопрос
    #39938207
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alibek B.
Потому что он проще? Или я какие-то недостатки варианта 2 упускаю?

DOM тормозной я хз сколько ты будешь вычитывать большую таблицу. Ну и если у тебя будет таблица со всеми данными, можно встать раком. Вариант 1 самый быстрый в том плане, что ничего не надо передавать, данные нужны, скорее все, чем часть и нет необходимости защищаться от парсинга.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Архитектурный вопрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]