Сообщения без ответов | Активные темы Текущее время: 09 сен 2026, 04:02



Ответить на тему  [ Сообщений: 8 ] 
Асинхронная загрузка JavaScript - ускоряем загрузку страниц 
Автор Сообщение

Зарегистрирован: 17 янв 2012, 12:07
Сообщения: 512
Откуда: Нижний Новгород

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

HTML устроен так, что веб-страница загружается, синхронно (строка за строкой) загружая по очереди все включенные в html-код элементы. Таким образом, загрузка тормозится в местах с javascript строками.
ПС: не все скрипты сработают в футере, некоторые работают только между тегами <head>!
Выход есть: поместить явавские строки в конец html документа (следовательно их загрузка будет происходить после прорисовки всей страницы) и только после этого содержимое блоков будет отображено в нужных местах. Это называется асинхронная загрузка JavaScript. Все серьезные проекты сегодня стараются как можно быстрее перейти на новую технологию загрузки. Тем более, что это абсолютно легко.

Есть несколько подходов. Начну по порядку.


JavaScript: синхронная загрузка скрипта
Загрузка javascript файла осуществляется так:

Код:
Для просмотра Вы должны быть в группе пользователей Elite-Board.


Асинхронная загрузка скрипта HTML5
Стандарт HTML5 поддерживает возможность асинхронной загрузки скриптов, что может значительно ускорить общее время получения страницы. Просто добавьте async или defer.

Код:
Для просмотра Вы должны быть в группе пользователей Elite-Board.


Чем же отличаются атрибуты async и defer

В обоих случаях мы получаем асинхронную загрузку скриптов. Разница заключается только в моменте, когда скрипт начинает выполнятся. Скрипт с атрибутом async выполнится при первой же возможности после его полной загрузки, но до загрузки объекта window. В случае использования атрибута defer – скрипт не нарушит порядок своего выполнения по отношению к остальным скриптам и его выполнение произойдет после полной загрузки и парсинга страницы, но до события DOMContentLoaded объекта document.

К сожалению, этот механизм на сегодняшний день не работает во всех браузерах (особенно это касается IE). Также не будет работать, если в файле script.js есть строки document.write.

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

Чтобы использовать, просто заменяем
<script src=”…”>
на
<script extsrc=”…”>

И подключаем файл скрипта extsrc.js

Получится так:
Код:
Для просмотра Вы должны быть в группе пользователей Elite-Board.


К сожалению, этот способ тоже не подойдет к файлам с document.write

Лучшая рабочая асинхронная загрузка javascript
Универсальный способ для всех браузеров. Работает даже с document.write

В том месте страницы, где нужно реально отобразить наш элемент создаем пустой div блок:
Код:
Для просмотра Вы должны быть в группе пользователей Elite-Board.

В самом конце страницы перед </body> вставляем скрипт для асинхронной загрузки файлов:
Код:
Для просмотра Вы должны быть в группе пользователей Elite-Board.

Как то так! Спс за внимание1

_________________
Рекомендую Всем! Надёжный и качественный хостинг BeGet.ru
Eboardclub.ru - Шаблоны, доработка, ELITE-BOARD 2.3 - СКРИПТ ДОСКИ ОБЪЯВЛЕНИЙ
Доска объявлений Республика Крым


30 мар 2018, 21:39
Профиль WWW

Зарегистрирован: 17 янв 2012, 12:07
Сообщения: 512
Откуда: Нижний Новгород

ПС2 очень актуально если у Вас более 100 поситителей в день, в основном тормозят сайты виджеты и снипеты соц. сетй и т.д.

_________________
Рекомендую Всем! Надёжный и качественный хостинг BeGet.ru
Eboardclub.ru - Шаблоны, доработка, ELITE-BOARD 2.3 - СКРИПТ ДОСКИ ОБЪЯВЛЕНИЙ
Доска объявлений Республика Крым


30 мар 2018, 21:53
Профиль WWW

Зарегистрирован: 17 янв 2012, 12:07
Сообщения: 512
Откуда: Нижний Новгород

что ни кому не интересно ?, давайте забубеним тут уроки переделывания под себя скрипта, чтобы деньги за очень тупые вещи вам не тратить

_________________
Рекомендую Всем! Надёжный и качественный хостинг BeGet.ru
Eboardclub.ru - Шаблоны, доработка, ELITE-BOARD 2.3 - СКРИПТ ДОСКИ ОБЪЯВЛЕНИЙ
Доска объявлений Республика Крым


31 мар 2018, 14:17
Профиль WWW
Аватара пользователя

Зарегистрирован: 19 ноя 2017, 18:54
Сообщения: 347
Аватара пользователя

Конечно интересно, но на фоне загрузки Крымской доски 10/53 - тема выглядит печальной.


31 мар 2018, 21:03
Профиль

Зарегистрирован: 17 янв 2012, 12:07
Сообщения: 512
Откуда: Нижний Новгород

зачет за подъ.....он, Крымская доска еше 2,2 версии на ней что только не испытывалось, ей по возврасту положено тормозить так скажем! конечно же я ее оптимизирую, просто нашел вот удобный и рабочий вариант, решил поделиться!

_________________
Рекомендую Всем! Надёжный и качественный хостинг BeGet.ru
Eboardclub.ru - Шаблоны, доработка, ELITE-BOARD 2.3 - СКРИПТ ДОСКИ ОБЪЯВЛЕНИЙ
Доска объявлений Республика Крым


01 апр 2018, 00:59
Профиль WWW
Аватара пользователя

Зарегистрирован: 19 ноя 2017, 18:54
Сообщения: 347
Аватара пользователя

Сорян, не знал, что в подписях раритеты держат. За рабочий вариант - спасибо. Мне точно пригодится подобная инфа.


01 апр 2018, 02:40
Профиль

Зарегистрирован: 17 янв 2012, 12:07
Сообщения: 512
Откуда: Нижний Новгород

нз, пользуйся, и с другими поделись!

_________________
Рекомендую Всем! Надёжный и качественный хостинг BeGet.ru
Eboardclub.ru - Шаблоны, доработка, ELITE-BOARD 2.3 - СКРИПТ ДОСКИ ОБЪЯВЛЕНИЙ
Доска объявлений Республика Крым


02 апр 2018, 11:12
Профиль WWW

Зарегистрирован: 11 апр 2016, 17:13
Сообщения: 247

Скорость загрузки сайта очень щепетильная тема.

Здесь надо понимать, что есть понятие как: проверка ответа сервера и скорость загрузки сайта
Сравниваем два сайта, мой и http://docrimea.ru/

1. Проверка ответа сервера в Яндекс Вебмастере.

Время ответа сервера моего сайта: 117 мс
Время ответа сервера доски Крыма: 107 мс

Здесь у доски Крыма лучший результат, хотя сайт у меня на ПК открывался минуты полторы.

Замечу, что время ответа сервера моего сайта значительно увеличилось после переезда на https. Ранее средняя скорость составляла 70-80 мс.
ОК.


2. Идём дальше. Проверяем тут: http://sitespeed.me/ru/

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

Мой сайт: Время загрузки (сек) 0.29 и Скорость (kb/s) 313.07
Крым: Время загрузки (сек) 0.12 и Скорость (kb/s) 2.39

3. Мониторим дальше с помощью http://whichloadsfaster.co/

Мой сайт: 708 ms
Крым: 13528 ms

ОГО!!! Вот это показатели.

4. PageSpeed Insights или тоже самое http://pr-cy.ru/speed_test/
Инструмент оценки скорости загрузки страниц от Google. Показывает значение от 0 до 100 как для компьютеров, так и для мобильных устройств. Тут же указывает на слабые места сайта и дает рекомендации по оптимизации скорости.

Мой сайт комп/телефон сколько % из 100: 32/38
Крым комп/телефон сколько % из 100: 52/39

5. https://gtmetrix.com/
Еще один полезный инструмент для теста скорости сайта. Отображает много сводной информации, также хранит историю, чтобы можно было сравнить, насколько улучшилась или ухудшилась скорость загрузки. Подгружает рекомендации Yahoo и Google для оптимизации скорости, сортируя их по приоритету.

Мой сайт: 53% / 83%
Крым наш: 90% / 65%

6. Смотрим чего и как загружается в подробностях с помощью: http://www.webpagetest.org/
Загружает страницу два раза, сравнивает количество обращений – выявляет, насколько хорошо организовано кеширование, показывает подробную статистику по каждому из тестов. Сохраняет скриншоты, как сайт выглядит на каждой секунде загрузки. Также в удобной форме демонстрирует, какая группа запросов заняла больше всего времени.

Мой сайт Load Time: 6.073s Fully Loaded: 6.470s
Крым: Load Time: 11.260s Fully Loaded: 14.461s

Выбирал сервер в Польше, Варшава.

7. Есть ещё несколько сервисов для различных целей:
http://www.websiteoptimization.com/services/analyze/
http://www.monitis.com/pageload/
http://loadimpact.com/
https://tools.pingdom.com/


03 май 2018, 22:46
Профиль
Показать сообщения за:  Поле сортировки  
Ответить на тему   [ Сообщений: 8 ] 

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron