За последние 24 часа нас посетили 16120 программистов и 1547 роботов. Сейчас ищут 899 программистов ...

сжатие массива

Тема в разделе "JavaScript и AJAX", создана пользователем ??? Соловьев Е ш326, 6 дек 2012.

  1. добрый вечер!

    есть массив mass_content объявляемый в js файле
    var mass_content = new Array(
    new Array('бла бла бла','бло бло бло','ололо'));

    на самом деле содержимое элемента mass_content[0] чуть более 15 000 символов русского и английского текста.
    кодировка UTF-8

    ну вы понимаете в чём собственно беда...
    такой файлик имеет размер почти 16КБ, а это ведь далеко не всё... посчитал - нужно расширять массив.. очень при очень сильно, а это примерно на 280КБ объёма.
    тобишь загрузка такого файла на страницу займет аж 3 - 4 секунды.

    так вот вопрос в том, можно ли обработать эти данные для уменьшения объёма?? но так, чтобы потом эти данные без проблем извлечь в исходном виде??

    с уважением Манта.
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    gzip =) только хз как, наверное просто включить сжатие в вебсервере
     
  3. но но... сайт к серверу обращений не делает.
    вообще изначально хотелось хранить этот массив в файлах на серваке и со страницы делать AJAX запросы... но в связи с некоторыми моментами этого сделать невозможно... это я делаю проект для экзамена, а там где он будет представлен стоит фильтр.((

    есть функции шифровки строк.. но уменьшают ли они объём?? а может есть специальное для этих целей средство?? ну как то так)
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну тогда всю страницу можно зипить
    а нашиша? если это дипломный проект
     
  5. нет, ты наверное не понял...
    надо сжать не страницу, а содержимое массива...
    var a = new Array("очень много текста");
    надо что то сделать с a[0] чтобы из очень много текста сделалось нечто, что занимает меньше памяти и в любой момент может быть обратно расшифровано в очень много текста
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    это страница. её можно сжать целиком. можно сжать ajax-ответ. целиком.
     
  7. так если сжать страницу, то она как js файл никакой ценности не имеет.
    ajax мне использовать нельзя.

    Добавлено спустя 1 минуту 17 секунд:
    кстити ajax запрос обязательно должен быть обращен к серверу?? можно ли его делать по протоколу file на свой комп?
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  9. спасибо за ссылку. посмотрю, если будут вопросы напишу

    Добавлено спустя 7 минут 2 секунды:
    неее.. это не то. я не гружу файлы на сервер. проект будет проверяться на компе с жесткого диска
     
  10. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Сам файл *.js в UTF-8 (без BOM) ?
     
  11. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Не понятно, цель какая..? Написать собственный архиватор на javascript? :)
     
  12. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    блин, если ты хочешь уменьшить трафик, то используешь gzip
    всё.

    а что вы не используете веб-сервер при сдаче курсовой это видишь ли не ебёт создателей веба =)
     
  13. да

    да нельзя мне чисто физически использовать этот гзип...((трафик тут не причём - если бы использовал сервер, то загружал данные запросами и всё норм.., а так вся инфа храниться в массиве js и это занимает очень много места. просто потом загрузка такого файлика может увеличиться до 30 секунд..((
     
  14. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    При таких обстоятельствах я бы рекомендовал данный контент переменной засунуть в спрятанный див с каким-то id.
    далее, на domready берём в переменную контент дива.
    Код (Text):
    1. var xx=document.getElementById('div_id').innerHTML
    У вас не исполняемый код js весит много, у вас статический контент переменной весит много, а что будет если вам при сдаче проекта скажут "ану-ка, давайте-ка будем выводить timestamp в переменную" ? Данный контент нужно формировать в php и пихать в страницу, а не js.
     
  15. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  16. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    Вообще да, у автора одни проблемы - нельзя аякс, нельзя гзип и текста много-много. зачем, мне просто интересно, столько текста в переменной?
     
  17. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    потому что у него там видимо нет ни вебсервера ни бд.
    т.е. проект надо показать на тех данных, которые он вручную вкрячит в js файлик.
     
  18. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    Пипец
     
  19. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Тогда, все-таки, где-то косяк с кодировкой...

    Проще-это проверять, делая новую папку с UTF-8 (без BOM). =)

    Имею ввиду, .htaccess, файлы: *.php, *.html, *.css, *.js (Некоторые редакторы не увидив в файле текст русский, он его не сохранит, полезно оставлять русский коммент)
    Во всех файлах css назначить @charset 'utf-8';

    А также нужно сделать соединения в utf-8, установить локаль, <meta> и заголовки.

    Чтобы быть уже уверенным, что у тебя utf-8 =)
    И также работать с mb_* функциями и конвертированием, чтобы к себе принимать, только в utf-8.