Время загрузки AJAX - проблема хоста и сервера? - PullRequest
2 голосов
/ 16 октября 2010

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

По сути, я делаю ajax-запрос на страницу php, которая получает информацию из базы данных.

Здесь - это страница.

Я рассчитал все свои сценарии, запросы и страницы javascript, mySQL и php.(Если вы запустите firebug, вы увидите мои метки времени в консоли, а также в xml)

В качестве примера -

Запрос mysql занимает 20 мс. Страница PHP занимает 50 мс AjaxСценарий успеха, который обрабатывает небольшое количество XML (менее 1 КБ) и генерирует маркеры, для запуска занимает 8 мс.

Тем не менее, загрузка страницы занимает около 4 секунд.

Итак, если предположитьни один из моих сценариев не запаздывает, это должно быть проблемой с временем отклика от сервера или с моим собственным интернет-соединением, верно?

Буду признателен за любые теории или мысли.

Спасибо

1 Ответ

2 голосов
/ 16 октября 2010

Хорошо, посмотрел вашу страницу и вот некоторые из проблем, которые я видел, которые могут повлиять на скорость:

  1. Требуется 4 мсек, чтобы получить ваши данные в функции getMarkers, но 892 мсек требуется, чтобы прочитать файл XML. Я бы порекомендовал вернуться к vanilla javascript, чтобы прочитать ваш xml-файл, так как количество выполняемых вами операций действительно вредит вашей производительности.
  2. Сократите и объедините все локальные сценарии на вашем сервере. Я получал действительно высокое время отклика. Сделав это, вы можете устранить 4 http-запроса, что поможет с временем отклика на вашем сервере. (Примечание: не объединяйте jquery или jquery ui в этом)
  3. Поскольку ваш сервер работает немного медленно (не ваша вина, это будет зависеть от того, как вы, вероятно, используете общий хостинг), я бы порекомендовал связать jquery и jquery ui с версиями, размещенными на Google CDN. Вот пост об этом Jquery CDN
  4. На вашей странице 24 изображения; 23 из которых под 4KB. Объедините эти 23 в одно изображение спрайта CSS и назначьте пустой gif размером 1px X 1px в качестве встроенного изображения HTML и используйте вместо этого изображение спрайта CSS. Вот хорошая статья о том, что это такое, если вы незнакомы: CSS-спрайты объяснили также вот хороший онлайн-генератор CSS-спрайтов: Генератор CSS-спрайтов
  5. Убедитесь, что вам нужен Jquery UI для этой страницы. Я не видел ничего, что требовало бы этого. Если вы можете удалить его, вы экономите себе 206k. Не забудьте удалить связанный файл CSS, если он не нужен. Это сэкономит вам еще 2 звонка.
  6. Не копал слишком глубоко, но если вы еще не начали звонить, настройте карту Google в $ (document) .ready () таким образом, чтобы остальная часть вашей страницы могла загружаться, и вы можете отобразить анимацию загрузки. в этой области. Таким образом, пользователи узнают, что что-то происходит, и ваша страница будет загружаться намного быстрее.

Так что вы можете значительно ускорить процесс, выполнив вышеизложенное. Вы бы хотели перейти с 82 компонентов на 51 локальный и еще 2 на Google CDN. Если вы можете улучшить это время чтения xml, вы можете сократить время загрузки почти на одну секунду

...