Как / Где хранить данные в HTML клиента - PullRequest
2 голосов
/ 31 июля 2011

Я храню скелетный снимок веб-страницы, сгенерированный сервером в самом HTML, поэтому, когда я отправляю запросы Ajax обратно на сервер, сервер может узнать, как выглядит страница клиента, и отправить обратносоотвествует различия.

Этот скелет в основном представляет собой дерево, где каждый узел представляет компонент (меню, боковую панель, контент, комментарий и т. Д.), А его дочерние элементы являются его подкомпонентами.

В настоящее время я храню егокак Base64ed GZiped JSONed данных.Как чистый JSON, он занимает около 4000 символов, но в кодировке он занимает ~ 500.(из интереса, Pickle Python принимает ~ 3000 символов, но сжимает до ~ 2000)

Итак, мой вопрос, есть ли что-нибудь еще, что я могу сделать, чтобы обработать данные?Любой веб-безопасный формат данных, который является более компактным, чем Base64?Что-нибудь более компактное, чем GZip?повышение «уровня» функции gzip с 6 до 9 привело к очень небольшой экономии (~ 20 символов).

И другой вопрос, куда эти данные должны идти?В настоящее время он просто где-то сидит в значении скрытого поля ввода.Имеет ли значение вообще, находится ли он в некоторых атрибутах ввода, атрибутах некоторых других тегов, как содержимое div с display: hidden?Или об этом не стоит заботиться?

1 Ответ

1 голос
/ 31 июля 2011

Не вижу смысла хранить его в скрытом поле. Я бы не рекомендовал хранить его в скрытом поле. Вероятно, вы можете использовать метод данных Jquerys для хранения json или просто сохранить его в переменной javascript, которая имеет правильную область видимости.

Ну, я не уверен, какой подход вы используете, чтобы получить DIFF. Отправляете ли вы обратно данные, хранящиеся на клиенте, на сервер или отправляете данные с сервера на клиент, а затем отправляете их DIFF на стороне клиента, что может быть лучшим вариантом?

Что касается сжатия, я не думаю, что вы должны слишком концентрироваться на нем, потому что есть и негатив, вам нужно тратить время на его распаковку. Таким образом, текущая вещь для проверки будет

compression + decompression < time taken for transfer

если это так, то вам, вероятно, следует сжать данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...