Сжатие клиентских данных JavaScript

Я пытаюсь разработать приложение кисти через processingjs. Этот API имеет функцию loadPixels (), который загрузит значения RGB в в массив. Теперь я хочу сохранить массив в дб сервера.

Проблемой является размер массива, когда я преобразовываю в строку, размер составляет 5 МБ.

Лучшее решение, должен сделать сжатие на уровне JavaScript? Как сделать это?

9
задан Soft 12 February 2010 в 14:32
поделиться

1 ответ

У меня это было пару раз. Это особенно расстраивает, так как это сразу же летучая мышь, и сообщение об ошибке не дает ни малейшего представления о том, что может быть проблемой.

Чтобы исправить это, щелкните правой кнопкой мыши на заголовке проекта, в данном случае - на «StartMvcApplication» и выберите build .

Это заставляет код компилировать перед запуском. Не спрашивайте меня почему, но это было решением 100% времени для меня.

-121--671770-
$('a.my-link').each(function () {
    var href = $(this).attr('href');
    $(this).attr('href', href + '&thisisadded=true');
});

Замените селектор на селектор jQuery, который будет соответствовать соответствующей ссылке на вашем сайте, если мой не является хорошим.

-121--4196094-

Пример сжатия LZW см. в http://rosettacode.org/wiki/LZW_compression#JavaScript . Он лучше всего работает на более длинных последовательностях с повторяющимися узорами.

Из статьи Википедии на LZW:

Словарь инициализирован для содержания односимвольные последовательности соответствует всем возможным входные символы (и больше ничего за исключением кодов clear и stop, если они используются). Алгоритм работает путем сканирования через вход последовательность последовательно длиннее подстроки, пока он не найдет подстроку, которая не в словаре. Когда такое последовательность найдена, индекс для строка меньше последнего символа (т. е. самая длинная подстрока, которая находится в словарь) извлекается из словарь и отправленные на вывод, и новая последовательность (включая последнюю символ) добавляется в словарь со следующим доступным кодом. Последний затем используется в качестве символа ввода следующая начальная точка для сканирования подстроки.

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

8
ответ дан 4 December 2019 в 21:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: