Я склонен использовать элементы, когда это - данные, которые читатель должен был бы знать и атрибуты, когда это только для обработки (например, идентификаторы). Это означает, что я редко использую атрибуты, поскольку большинство данных относится к смоделированному домену.
Есть 94 символа Unicode, которые могут быть представлены как один байт в соответствии со спецификацией JSON (если ваш JSON передается как UTF-8). Имея это в виду, я думаю, что лучшее, что вы можете сделать с точки зрения пространства, - это base85 , который представляет четыре байта как пять символов. Однако это всего лишь 7% улучшение по сравнению с base64, это дороже в вычислении, а реализации реже, чем для base64, так что это, вероятно, не победа.
Вы также можете просто сопоставить каждый входной байт с соответствующим символом в U + 0000-U + 00FF, затем выполните минимальную кодировку, требуемую стандартом JSON для передачи этих символов; Преимущество здесь в том, что требуемое декодирование равно нулю по сравнению со встроенными функциями, но эффективность использования пространства низкая - расширение на 105% (если все входные байты одинаково вероятны) vs.
Это мой любимый способ сделать это:
var $selectors = $('<div class="selectors"></div>').appendTo(container);
$selectors = $('<div/>').addClass('selectors').appendTo($container);