Ускорить загрузку сайта - PullRequest
2 голосов
/ 14 января 2010

Я ищу лучший способ ускорить время загрузки моего js.

Проблема в том, что я работаю с очень большим сайтом, использующим инфраструктуру jquery, и происходит то, чтосайт также загружается, Facebook Connect, общий доступ к addthis, аналитика Google и другой код отслеживания, jquery задерживается на несколько секунд, и некоторые элементы, такие как календарь, только появляются, и мои пользователи жалуются, что это занимает много времени.

Я сделал тест в Google Chrome, и среднее время загрузки составляет 4 с.Что слишком много.

Я уже делаю минификацию, и пользовательский интерфейс jquery / Jquery загружается из Google.Какой лучший способ подойти к этому?

Ответы [ 5 ]

1 голос
/ 14 января 2010

Делайте меньше вызовов HTTP, комбинируя изображения, сценарии и CSS, а также используйте сеть доставки контента, для которой вам могут помочь статические изображения, и CSS может помочь!

0 голосов
/ 15 января 2010

Убедитесь, что вы доставляете свой контент в зашифрованном формате gzip / deflate. Объедините несколько файлов javascript в один файл, что помогает сократить количество запросов http.

P.S. Вот тестовый инструмент, чтобы проверить, настроено ли сжатие: http://www.gidnetwork.com/tools/gzip-test.php

0 голосов
/ 14 января 2010

В дополнение к ответу Ювала есть несколько вариантов, которые могут или не могут принести вам увеличение скорости:

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

  • Не обязательно быстрее загружать jQuery из Google. Подумайте о том, чтобы поместить в один файл jQuery, jQuery UI и столько же ваших собственных JS, сколько разумно, минимизируйте и распакуйте его и позвольте серверу обслуживать версию gzipped, где это возможно. Обратите внимание, , что выигрыш в скорости во многом зависит от того, что кэшируют ваши пользователи и где они его кэшируют. Если в их кэше уже есть jQuery от Google, этот метод может замедлить загрузку страницы.

Суть в том, что после некоторой оптимизации вы отправляетесь на эксперименты. Вы должны выяснить, что ваш средний пользователь имеет в своем кеше, если к странице обращаются напрямую через глубокие ссылки или вы можете переправить некоторые JS или CSS (или даже изображения) в ее кеш через предыдущую «целевую страницу».

0 голосов
/ 14 января 2010

Небольшие технические изменения (такие как обслуживание JS от Google, минимизация и т. Д.) Только покажут вам.

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

Это создаст лучший пользовательский интерфейс, вместо того, чтобы пользователь ждал 10 секунд для всей страницы, он начнет загружаться постепенно через 2 секунды (и все еще будет полностью загружаться после 10).

0 голосов
/ 14 января 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...