Главная

Wednesday, 10 June 2015

Как увеличить скорость загрузки сайта.


И снова здравствуйте.

Хороший конспект по оптимизации кода сайта для ускорения его загрузки. Не мой, но тем не менее.

Скорость работы web-сайта – сейчас один из самых важных показателей при создании  сайта и интернет-приложений.

Согласно исследованиям различных аналитиков из Google, люди обычно просматривают менее первых 25 секунд видеоролика, а некоторые даже меньше 10 секунд, исходя из этого, для вас было бы целесообразно сделать загрузку контента сайта настолько быстрой, насколько это возможно, чтоб пользователи могли принять решение, использовать его дальше или нет.

1. Оптимизация изображений
2. Оптимизация CSS и скриптов
3. Общие рекомендации по ускорению сайта

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

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



Ускорение сайта методом оптимизации изображений.

Оптимизация размера изображений может быть сложной задачей, а ее решение имеет множество вариантов, их которых можно выбирать. Это могут быть форматы файлов, различные инструменты оптимизации изображений, лучшие примеры использования кода и CSS, которые помогут вам сохранять изображения и взаимодействовать с ними самым лучшим образом.

Рассмотрим пример, показывающий, почему это так важно. В последнее время разработчиками iOS и создателями приложений было выявлено, что выведение готового рисунка на дисплеях Retina занимает в 2-4 раза больше времени и места на дисковом пространстве мобильного телефона, чем это было в предыдущих версиях при простой загрузке и запуске приложения.

Это не настолько актуально для веб-разработчиков и дизайнеров, но показывает, насколько важно отображение изображения на различных платформах. Ниже приведено несколько наиболее важных, на мой взгляд, рекомендаций, которые необходимо учитывать, оптимизируя изображения для интернета.

Форматы изображений.

Форматирование изображений – это наиболее важная тема, и является таковой потому, что каждый знает, что различные форматы влияют на скорость загрузки изображения. Однако существует сформировавшееся мнение на этот счет, которое мы можем использовать де-факто как стандарт. JPEG – для фотографий, GIF – для плоских изображений, содержащих малое количество цветов, и PNG – для всех остальных. Большинство веб-дизайнеров и разработчиков, которых я знаю, используют PNG практически для всего, кроме одноцветных и двухцветных кнопок, где они используют GIF.

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

Код изображения.

Самое плохое, что мы можем сделать и отрицательно повлиять на скорость загрузки изображения, это позволить коду автоматически выставлять размеры изображения. Ну что ж, можно сказать: «Разрешим коду сделать ___ для нас». В таком случае обычно говорят: «Можешь сделать лучше – сделай сам», и это действительно правильно. Используя такие показатели, как width=’60px’ height=’50px’, можно действительно снизить нагрузку на сервер и время загрузки им изображения, так как сервер считывает информацию о странице и видит поставленные перед ним задачи. Потому, убедитесь, что вы на верном пути и сделайте так со всеми вашими изображениями.

Инструменты оптимизации изображений.

Инструменты всегда полезны. Хорошо, в большинстве случаев… Иногда они мешают и отвлекают внимание, но в данном случае они действительно будут очень полезными. Если вам удастся найти замечательный инструмент для оптимизации изображений, прежде всего, пожалуйста, напишите об этом в комментариях, так как мы всегда в поиске лучшего. Следующие несколько инструментов – мои любимые. Мне нравится ImageOptim для Mac и Riot для Windows. Они очень отличаются друг о друга, но выполняют одну задачу.

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


Ускорение загрузки сайта за счет оптимизация CSS и JavaScript.

CSS и JavaScript являются важными языками, когда дело доходит до веб-дизайна и, особенно, при создании динамического контента. Я считаю, что люди часто забывают о том, что могут оптимизировать свой динамический контент, а также не улучшают свои JavaScript и CSS. Конечно, это не самые необходимые вещи для небольших сайтов, но для больших – это действительно важно, особенно для тех, которые полагаются на большое количество дизайнерских решений. Давайте рассмотрим несколько «Правил для JavaScript и CSS», которые достаточно хорошо стандартизированы при создании веб-приложений. 

Первое правило для CSS и JavaScript
Если вы можете сделать это в CSS , то делайте в CSS!

Мы часто забываем, что у нас есть такой замечательный инструмент и, я бы сказал, система CSS является самым замечательным, что есть у веб-дизайнера. Также добавил бы, что дизайнеры слишком быстро переводят работу в Photoshop (но это их работа и не будем осуждать их за это). При выполнении дизайна вам следует учитывать тот факт, что кроме графического редактора, ваш браузер тоже может вам кое-чем помочь, если вы воспользуетесь CSS3. Используйте все его преимущества! Располагая инструментом, где макеты можно выполнять действительно быстро, вам уже не потребуется в дальнейшем использовать для их компоновки HTML. Уверен, что вы сможете реализовать все при помощи CSS!

Второе правило для CSS и JavaScript
•Уменьшайте, уменьшайте, уменьшайте!

Минимализация кода – это, пожалуй, один из самых простых и лучших способов повысить скорость загрузки сайта. Обратите внимание, что мы говорим о миллисекундах, но и они влияют позитивно, особенно при использовании, например, библиотеки jQuery. Помните, что установив плагин для JavaScript/CSS и задав настройки для скачивания уменьшенной версии кода сайта (ее не надо редактировать), вы улучшите скорость загрузки сайта, потому сделайте так! Моими любимыми инструментами являются Code Minifier для Mac, Minify для Windows и JSCompress/CSSCompressor для тех, кто хочет работать в смешанной кросс-браузерной платформе. Хорошего уменьшения!

Третье правило для CSS и JavaScript
•Скажите In-line «нет-нет»

Плохой практикой является использование in-line в CSS или JavaScript, особенно, когда дело доходит до CSS. Здесь проблема не только в том, что это устаревший метод, но и в том, что если оставить CSS в коде HTML (особенно в in-line), это будет читаться так: HTML/CSS/HTML/CSS/HTML/CSS/HTML/CSS, а не просто HTML => CSS. Вы знаете, что это очень плохо для времени серверной загрузки, и может ухудшить большинство веб-приложений, , использовавших такой подход к отдельным файлам. Это, конечно, не выведет из строя ваш сайт, но может привести к тому, что нужно будет звать мастера, который станет разбирать, где ошибка – а это уже важно. Потому, всегда будьте тем, кто может решить проблемы, а не тем, кто ее создает.

Четвертое правило для CSS и JavaScript
•Перемещайте вниз

Если требуется вставить JavaScript на страницу, сделанную в HTML, и нет возможности избежать этого, то расположите его в нижней части HTML-документа. Это поможет уменьшить время загрузки сайта, так как все функции и процессы, заложенные в JavaScript, будут выполняться после загрузки страницы. А еще это уменьшит вероятность того, что ошибка сможет повлиять на работу всей системы. Поэтому, лучше убедиться, что ваш сайт будет работать нормально и предотвратить не желаемые события, способные даже повредить браузеры.

Пятое правило для CSS и JavaScript
•DOM-оптимизация

По возможности уменьшите DOM. Например, вы часто используете jQuery, который создает много элементов DOM или все считывает через DOM – все это значительно замедляет работу вашего сайта. Есть одна пословица, которая мне нравится и ее можно использовать в этом случае: «Если вы так делаете потому, что это единственный верный способ, значит, существуют и более верные способы». Еще можно сказать, «Если вы так делаете потому, что это единственный верный способ, который вы знаете, значит, вы делаете это неправильно», но эта версия немного жестковата.

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

Как раз недавно я сам пришел к этому, так как вел работу над проектом на Ruby on Rails. Немного ранее на этой неделе я сделал то, что давно хотел – один в один перевел около 5 div-элементов в HAML (переместил папку в папку и затем еще раз в папку). Я так сделал только лишь потому, что не знал лучшего способа, и в результате у меня получилась какая-то гадость, которую пришлось переделывать. Такая работа оказалась намного сложнее, но из нее я узнал много полезных вещей, она заставила меня выучить новый способ решения подобных вопросов в будущем. Двигайтесь дальше и получайте новые знания! Истина очень близко.


Основные работы по увеличению скорости загрузки сайта.

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

•Слеши в ссылках

Это крайне важно. Когда пользователь открывает ссылку без слешей на отдаленном от сайта сервере, тот должен выяснять какого вида по указанному адресу будет файл или страница. Сервер будет вынужден самостоятельно добавлять слеши, а это займет миллисекунды, и все они будут суммироваться. Я часто встречаю вебмастеров, которые не думают об этом, а их неоптимизированный код не несет никакой нагрузки, однако, в конце концов, это все-таки имеет значение. Если десять лет копить четвертаки, в итоге у вас будет много денег, так же и здесь, только в меньшем или большем объеме, в итоге вы столкнетесь с проблемами трафика вашего сайта.

•Фавиконы

Браузеры всегда ищут файлы favicon.ico в корневом каталоге вашего сервера, так что вы спокойно можете идти вперед и добавлять favicon. Даже если вы сделали нечто временное, favicon нужно создать. Если favicon нет, браузер для себя выдает ошибку и лишь кэширует такую ошибку в своем разделе favicon.ico, что увеличивает время на загрузку.

•Уменьшение размеров данных cookies

Это не применимо во всех случаях, но при разработке веб-приложений, уменьшение размеров cookie крайне важно. Например, так как я обычно работаю с приложениями Ruby on Rails, вы можете использовать cookie (или другие способы) для авторизации различных сессий, так как с ними может значительно улучшиться скорость загрузки.

Cookie означают, что информация может кэшироваться на вашем компьютере, это позволяет уменьшать скорость загрузки, однако зачастую они полезны при авторизованной пользовательской сессии или при отслеживании вас по всему интернету (как делает Google и Facebook). Если вам придется работать с cookie, убедитесь, что они будут небольшого размера и использованы уместно. При необходимости, сделайте данные короче, чтобы сократить время их загрузки.

•Кэш

Данная тема очень обширна, и я, к сожалению, не являюсь в ней хорошим экспертом. Однако вся суть кэширования достаточно проста. Это хранение файлов (как правило, с кодом HTML/CSS) с часто посещаемых вашим компьютером сайтов и потому ему не нужно скачивать их каждый раз.

Такая технология действительно очень полезна и за последние несколько лет широко применялась большинством веб-приложений. Существует множество решений для кэширования, но, наверное, самым распространенным является Memcached. Его работа заключается в том, чтобы сохранить в браузере файлы из открытых на компьютере веб-приложений. Например, если у вас есть разные профили, он сохраняет картинку профиля на вашем компьютере, а в следующей фазе проявляются все прелести работы Memcached. Ваши закодированные данные можно просмотреть (вытащив их и базы данных) на сервере Memcached и проверить кэшированную версию файлов. А если этого файла не будет, то можно вставить его в базу данных, чтобы в дальнейшем он очутился в кэше. Это замечательный пример кэширования больших объемов информации и на протяжении последних двух лет он позволил сотням компаний улучшить работу их серверов и баз данных.

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


No comments:

Post a Comment

А что вы думаете по этому поводу?