1 / 22

Разгони свой сайт

Разгони свой сайт. Лекция 7: «Ненавязчивый» JavaScript. Мациевский Николай. 1 / 2 2. webo.in. Содержание. «Отложенная» загрузка «Ненавязчивый» JavaScript «Ненавязчивая» реклама «Ненавязчивые» счетчики. 2 / 2 2. webo.in. «Отложенная» загрузка. 3 / 2 2. webo.in.

Télécharger la présentation

Разгони свой сайт

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Разгони свой сайт Лекция 7: «Ненавязчивый» JavaScript Мациевский Николай 1 / 22 webo.in

  2. Содержание • «Отложенная» загрузка • «Ненавязчивый» JavaScript • «Ненавязчивая» реклама • «Ненавязчивые» счетчики 2 / 22 webo.in

  3. «Отложенная» загрузка 3 / 22 webo.in

  4. Событие DOMContentLoaded • Срабатывает по готовности DOM • По окончанию второй стадии загрузки • У пользователя сформированная страница • Загрузка страницы для него завершилась • Загружаем дополнительные файлы • Например, JavaScript 4 / 22 webo.in

  5. Кроссбраузерныйподход • IE: атрибут defer + onreadystatechange • Дополнительный «мнимый» скрипт • Safari: document.readyState • Проверяем с заданным интервалом • «Старые» браузеры: window.onload • Для обратной совместимости 5 / 22 webo.in

  6. Неблокирующая загрузка • JavaScript-вызовы блокируют загрузку • Не дают применять параллельные потоки • Динамическая загрузка скриптов • DOM-методы по onload – лучше всего • defer / document.write – только в IE • XHR + eval – выполняется долго • XHR + script.innerText – еще сложнее • Iframe – дополнительная нагрузка 6 / 22 webo.in

  7. «Ненавязчивый» JavaScript 7 / 22 webo.in

  8. Обратная совместимость • Ссылки ведут на соответствующие страницы • Даже если с onclick • Анимация работает на CSS • Везде, где это возможно • Страница функционирует без JavaScript • JavaScript – только дополняет! 9 / 22 webo.in

  9. Очищаем код • Семантический HTML • Разметка соответствует смыслу • HTML отделен от CSS • Содержание от представления • HTML отделен от JavaScript • Содержание от взаимодействия 8 / 22 webo.in

  10. Доступ к DOM-дереву • Доверять, но проверять • Элемента или метода может не быть • DOM-методы • getElementById • getElementsByTagName • getElementsByClassName (не везде) 10 / 22 webo.in

  11. Обработчики событий • Для одного элемента • .onclick , .onload и т.д. • или attachEvent / addEventListener • Для группы • родитель отвечает за обработку • источник определяем по e.target 11 / 22 webo.in

  12. «Ненавязчивая» реклама 12 / 22 webo.in

  13. Внешняя реклама на сайте • Блокирует отрисовку страницы • iframe спасает, но не всегда возможен • Скорость загрузки зависит от скорости доступа к внешним ресурсам • Логика отображения рассчитывается через браузер 13 / 22 webo.in

  14. Добавление элементов • document.write • Блокируют загрузку • Нужно вставлять максимально близко к концу страницы • innerHTML • Требует подготовленного контейнера • Можно использовать на любой стадии загрузки 14 / 22 webo.in

  15. Виды размещения • Контекстная реклама • Можно загружать в «отложенном» режиме • TopLine / RichMedia / банеры • Можно вставлять в подготовленные блоки на странице • PopUnder • Раздражает больше всего 15 / 22 webo.in

  16. Архитектура рекламной сети • Вся логика вычисляется на сервере • Пользователь получает готовый файл / текст • Вся реклама вызывается на третьей или четвертой стадии • Через отложенную загрузку • Статистика считается через логи • Коллизии при кэшировании? 16 / 22 webo.in

  17. «Ненавязчивые» счетчики 17 / 22 webo.in

  18. Общая структура • .gif файл вызывается с сервера статистики • Все параметры передаются в GET-запросе • Внешняя библиотека загружается для дополнительной бизнес-логики 18 / 22 webo.in

  19. Вставка .gif файла • document.write • Блокируем отображение страницы • Устаревшая технология • new Image().src • Поддерживается всеми браузерами • Не блокирует загрузку страницы 19 / 22 webo.in

  20. «Отложенные» счетчики • Находим document.write • Анализируем параметры у .gif • Преобразуем вызов в new Image() • Используем в любом месте • Вставляем в сам HTML-файл • Вставляем в JavaScript-библиотеку • Вызываем при каком-то условии • И т.д. 20 / 22 webo.in

  21. Динамическая статистика • Библиотека на своем сервере • Полный контроль (максимальное сжатие) • Нет обращений к внешнему хосту • Нет контроля изменений • «Отложенный» вызов • Динамическое добавление библиотеки • Проверяем по timeout, загрузился ли файл • Вызываем функцию счетчика 21 / 22 webo.in

  22. В следующей лекцииБыстрый JavaScript • Замыкания и утечки памяти • «Тяжелые» JavaScript-вычисления • Быстрый DOM • Кэширование в JavaScript • Элементарные операции 22 / 22 webo.in

More Related