2012-02-02 2 views
0

Я создал веб-страницу, которая имеет JavaScript в одном файле, но размер очень высокий. Когда я запускаю страницу, время загрузки JavaScript очень велико в Chrome. FYI: Файл сценария, созданный с помощью инструмента excel, который содержит много скрытых полей и скриптов, но все, что необходимо для работы приложения.Время выполнения Javascript очень медленное - Chrome

Вы прошли через то же самое и какое решение мы можем сделать для этого? Спасибо заранее.

+0

Технические характеристики? или вы можете дать нам представление о том, КАК MUCH js у вас есть? Что он делает, это AJAX тяжелый? (возможно, медленные асинхронные вызовы на бэкэнд и т. д.). В противном случае это вопрос без какого-либо реального ответа, более угадывающей игры. – Jakub

ответ

2

Запустите его через скрипт, который объединяет и минимизирует его. Теперь есть плагины для большинства систем сборки, которые делают это. Вот как мы сжимаем около 1.5 МБ JavaScript в около 500 кб в процессе нашей сборки.

+0

Его уже в одной строке, но размер файла высок. Есть идеи? – Palani

+0

Я обновил вопрос с помощью нескольких дополнительных входов. – Palani

1

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

+0

Его уже в одной строке, но размер файла высок. Есть идеи? – Palani

+0

, если возможно, вы можете разделить один файл на 2 или 3 файла. Chrome и другие браузеры могут загружать эти файлы параллельно. но не создавать слишком много файлов, параллельная загрузка имеет ограничение по лимиту. – fengd

+0

также файлы сценариев gzip. – fengd

1

Не существует «общей» проблемы медленной загрузки в хроме. Все это будет связано с отдельными сценариями.

Вам нужно будет определить 1) Какой сценарий вызывает медленную нагрузку по процессу устранения, а затем 2) Какая часть скрипта загружается медленно, тогда вы можете предпринять корректирующие действия.

Это может включать в себя рефинансирование или редизайн кода.

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

+0

Его уже в одной строке, но размер файла высок. Есть идеи? – Palani

+0

Я обновил вопрос с помощью нескольких дополнительных входов. – Palani

5

Есть несколько вещей, которые вы могли бы сделать:
- Минимизировать скрипты (например, с помощью Google Closure Compiler)
- объединить ваши скрипты (уменьшает количество запросов)
- включить сжатие GZIP
- загружать свои сценарии в конце вашего тела тега
- использовать CDN, предотвращает загрузку скриптов все из того же места (большинство браузеров только нагрузка 2 файлов одновременно с того же места)

Посмотрите на YSlow плагин и Google PageSpeed, которые очень полезны в улучшая производительность.

+0

Его уже в одной строке, но размер файла высок. Есть идеи? Я попытаюсь включить gzip compression.Thanks – Palani

+0

Используете ли вы множество фреймворков javascript? Вам они действительно нужны? Если вы сами написали много кода, попробуйте уменьшить длину имен/определений функций, сохраните их четкими, но короткими. – Zyphrax

+0

Я обновил вопрос с помощью нескольких дополнительных входов. – Palani

1

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

  1. как долго это займет, чтобы подключиться к серверу?
  2. Сколько времени потребовалось, чтобы передать контент?
  3. сколько еще вы загружаете на эту страницу одновременно?

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

  1. убедитесь, что Javascript обрабатывается и служил в качестве статического контента, например, через nginx/apache/безотносительно напрямую или cdn, не попадая в рамки вашего приложения
  2. исследуйте, можете ли вы использовать CDN для обслуживания javascript, иногда даже указывая на другие серверы разные имена доменов, например,вместо http://example.com/blah.js ->http://cdn2.example.com/blah.js
  3. убедитесь, что JS подается с соответствующими заголовками истечения срока, не повторно загрузить его каждый раз, когда клиент обновляет страницу
  4. поворот на gzipping Дж.С. содержания
  5. Минимизировать ваш JS с использованием различных инструменты, доступные
  6. положить ваши теги сценария непосредственно перед </body>
  7. исследования и очистки/оптимизировать OnLoad и document.ready крючки
+0

Его уже в одной строке, но размер файла высок. Есть идеи? – Palani

+0

Вы видите значительно лучшие времена загрузки в firefox или т. Д.? в любом случае minification + gzipping должен очень помочь – keymone

+0

Я обновил вопрос с помощью некоторых дополнительных решений. – Palani

1

Вы должны отменить что займет время. У FF и Chrome есть функция, показывающая сетевой трафик. Посмотрите также на yslow, у них есть отличный аддон Firebug.

+0

Я обновил вопрос с помощью нескольких дополнительных входов. – Palani

Смежные вопросы