|
Архитектурный вопрос
|
|||
---|---|---|---|
#18+
Есть страница с табличными данными, которые отдает сервер. Строк в таблице много, поэтому к таблице добавлена пагинация. Вариант 1: Сервер отдает пустую таблицу (с пустым tbody) и JSON со всеми данными. Клиентский JS-скрипт заполняет таблицу (добавляет строки в tbody, используя данные из JSON). При смене страницы скрипт очищает tbody и заполняет таблицу заново (используя фрагмент данных, соответствующих выбранной странице). Вариант 2: Сервер отдает заполненную таблицу со всеми данными. Клиентский JS-скрипт считывает данные из таблицы (в массив), затем очищает страницу и заполняет ее заново фрагментом, соответствующим выбранной странице. Мне вариант 2 кажется более интересным. Таблица у меня стилизована через CSS (то есть в HTML-коде только базовая разметка таблицы, без стилей и классов), поэтому оверхед по сравнению с JSON не такой уж и большой. Зато этот вариант будет работать даже в том случае, если на клиентской стороне JS выключен. Ну и менять шаблон страницы будет проще, только в одном месте. Однако чаще используется вариант 1. Потому что он проще? Или я какие-то недостатки варианта 2 упускаю? P.S. Разумеется речь не про таблицы огромного размера (типа КЛАДР), а про таблицы поменьше, где пагинация используется из соображений удобства и внешнего вида, а не вынуждено. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2020, 11:05 |
|
Архитектурный вопрос
|
|||
---|---|---|---|
#18+
Alibek B. если на клиентской стороне JS выключен. Alibek B. Сервер отдает заполненную таблицу со всеми данными. Alibek B. Клиентский JS-скрипт заполняет таблицу (добавляет строки в tbody, используя данные из JSON). и ещё - для сервера проще отдать данные частями (извлечь из базы) чем одним огромным массивом ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2020, 11:43 |
|
Архитектурный вопрос
|
|||
---|---|---|---|
#18+
Alibek B., ..есть же уже куча JS-фреймворков, или даже просто библиотек, типа knockout.js, которые всё это делают на клиенте через observable arrays или аналоги ... но велосипед поизобретать - тоже полезное дело ... :) .. для общего развития ... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2020, 12:10 |
|
Архитектурный вопрос
|
|||
---|---|---|---|
#18+
Мне быстрее будет сделать свой велосипед, чем разбираться с крупным фреймворком. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2020, 12:44 |
|
Архитектурный вопрос
|
|||
---|---|---|---|
#18+
Alibek B. Потому что он проще? Или я какие-то недостатки варианта 2 упускаю? DOM тормозной я хз сколько ты будешь вычитывать большую таблицу. Ну и если у тебя будет таблица со всеми данными, можно встать раком. Вариант 1 самый быстрый в том плане, что ничего не надо передавать, данные нужны, скорее все, чем часть и нет необходимости защищаться от парсинга. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2020, 12:52 |
|
|
start [/forum/topic.php?fid=22&msg=39938207&tid=1443500]: |
0ms |
get settings: |
12ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 175ms |
0 / 0 |