Showing posts with label js. Show all posts
Showing posts with label js. Show all posts

Saturday, December 28, 2013

Оптимизация через уменьшение

Лучший код тот, который не написан. 

Очистка html от пробельных символов:

Достоинства: 
  • ускоряет разбор документа на клиентской стороне; 
  • уменьшает размер сжатого deflate результата уменьшая энтропию тегов с символами возле них;
  • экономия места при кешировании; 
  • возможность получения статистики распределения размера встроенных элементов в результате; 
  • возможность смены последовательности тегов для оптимизации отображения. 

Недостатки: 
  • затраты ресурсов на очистку; 
  • дополнительное место для отказа. 

Очистка и объединение файлов css: 

Достоинства: 
  • минимизация кода и удаление пробельных символов как следствие сокращения объёма трафика; 
  • возможность поменять последовательность тегов; 
  • удаление лишних стилей в случае перекрытия частей стиля в последующем коде. 

Недостатки: 
  • возможно усложнение отладки из-за изменений в исходном коде; 
  • дополнительные затраты ресурсов. 

Очистка и объединение файлов js: 

Достоинства: 
  • минимизация кода и удаление пробельных символов как следствие сокращения объёма трафика; 
  • возможность удалить или оптимизировать код; 
  • ускорение работы кода как результат удаления "мертвого кода" и ускорения разбора. 

Недостатки: 
  • возможно усложнение отладки из-за изменений в структуре исходного кода; 
  • дополнительные затраты ресурсов.

Friday, June 25, 2010

Сравнение скорости прорисовки карт(gmap, openlayers).

Маленькое сравнение библиотек для работы с картами (в скобках более слабый компьютер):
  1. gmap v3 - 7,186(13) секунд;
  2. gmap v2 - 20,541(34) секунд;
  3. openlayers - 6,181(7) секунд.
Условия:
  • Прорисовывается список стран используя изначально разобранный kml, для уравновешивания условий прорисовки (Gmap - для прорисовки kml используется разбор на уровне сервера с возвратом обратно только готового изображения);
  • Запускается по нажатию на start, и до момента нажатия stop. Почему не автоматом? Карта может прорисовываться асинхронно, а так точно можно отследить, хоть и не с абсолютной точностью, момент когда по мнению пользователя все прорисовано;
  • Подсчет времени начинается после разбора, результаты должны быть более-менее реалистичными;
  • Вариант прорисовки через canvas для openlayers не участвовал в сравнении, так как сильно проигрывал стандартному варианту;
  • Использовался ff 3.6.3(linux).
Если кто-то найдет ошибки в коде прорисовки или способы ускорения буду рад обсудить.

Saturday, May 29, 2010

Формирование pdf из js

Обнаружилась интересная библиотека jspdf - позволяющая создавать простейшие pdf из js. Она основана на коде(скорее принципах и как пример) fpdf. Позволяет менять размер шрифта и размещать текст на странице - pdf возвращается как datauri, отлично работает в linux, но в windows есть несколько проблемок: ie не понимает datauri ни в каких формах, кроме как встроенное в страницу изображение, firefox при установленных обработчиках pdf(например: acrobat reader) происходит переход на этот url и показывается черный экран вместо контента страницы, иначе предложение загрузить. Это решаемо достаточно просто контент отправляется обратно на сервер как параметр POST, в ответ возвращается уже как контент с типом pdf - и все нормально работает.

P.S.: Я немного улучшил эту библиотеку добавив смену цвета шрифтов, поддерживается градации серого и полная RGB палитра.