Оптимизация производительности: карта Google с помощью PHP, MySQL и Javascript - PullRequest
0 голосов
/ 03 марта 2011

На основе этого учебного пособия я создал страницу, которая работает правильно. Я добавил пару выпадающих списков на страницу и, основываясь на этом фрагменте , смог соответствующим образом отфильтровать результаты. Так что на практике все работает как надо. Однако мой вопрос касается эффективности процедуры. Прямо сейчас процесс выглядит примерно так:

1.) Страница посещения пользователя 2.) Тело onload () называется 3.) Javascript вызывает скрипт PHP, который запрашивает базу данных (на основе критериев, переданных через URL) и экспортирует этот запрос в файл XML. 4.) Затем файл XML анализируется с помощью javascript на локальном компьютере пользователя.

Для любого одного поиска может быть несколько тысяч результатов (и, следовательно, несколько тысяч маркеров для размещения на карте). Как вы уже догадались, размещение всех маркеров занимает много времени. У меня есть несколько идей, чтобы ускорить его, но я хотел бы поговорить с опытными пользователями, чтобы убедиться, что моя логика верна. Я открыт для любых предложений!

Идея # 1: Есть ли способ (и ускорит ли это процесс?), Чтобы один раз выполнить запрос, сгенерировав XML-файл с помощью PHP, который содержал все возможные результаты, сохранить XML-файл локально, а затем выполнить фильтрацию с помощью JavaScript

Идея № 2: Создать на сервере задание cron для экспорта XML-файла в известное место. Вместо использования «Gdownloadurl (phpfile.php») я бы использовал gdownloadurl (xmlfile.xml). Таким образом, устраняется необходимость запуска нового запроса каждый раз, когда пользователь меняет значение раскрывающегося списка

Идея № 3: Вместо того, чтобы передавать критерии обратно в файл php (через URL), я должен просто фильтровать результаты с помощью javascript перед размещением маркера на карте?

Я видел много веб-страниц, которые размещают тонны и тонны маркеров на карте Google, и это занимает не так много времени, как мое приложение. Какова стандартная практика в такой ситуации?

Спасибо!

Редактировать: В моей логике может быть недостаток: если бы я экспортировал все результаты в файл XML, как (кроме javascript) я мог бы затем отфильтровать эти результаты?

1 Ответ

0 голосов
/ 03 марта 2011

Ваша логика правильна, однако, я бы не стал выполнять фильтрацию в Javascript.Если компьютер пользователя работает не очень быстро, производительность будет ухудшена.Лучше выполнять фильтрацию на стороне сервера на основе кэшированного ресурса (xml в вашем случае).

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

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