Лучший способ получить доступ к данным из базы данных каждые X секунд (асинхронно) - PullRequest
1 голос
/ 12 ноября 2010

Хорошо, я не совсем понял, как сформулировать этот вопрос, и особенно не заголовок.Но я попробую и надеюсь, что я достаточно конкретен, пытаясь сохранить его актуальность для других.

Если вы хотите запускать php-скрипт в фоновом режиме (через ajax) каждые X секунд, которыевозвращает данные из базы данных, как вы делаете это наилучшим образом, не используя большую часть ресурсов сервера?

Мое решение выглядит так:

Пользователь посещает веб-страницу, каждые x секундна этой странице работает javascript.Javascript вызывает PHP-скрипт / файл, который вызывает базу данных, извлекает данные и возвращает данные в Javascript.Затем JavaScript печатает данные на странице.Я опасаюсь, что этот способ решения проблемы окажет большое давление на сервер, если на странице будет много (10 000) одновременных посетителей.Есть ли другой способ сделать это?

Ответы [ 2 ]

1 голос
/ 12 ноября 2010

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

Комета этот способ можно использовать:

Comet - это метод программирования, который позволяет веб-серверам отправлять данные клиенту без необходимости запрашивать их у клиента.Этот метод даст более отзывчивые приложения, чем классический AJAX.В классических приложениях AJAX веб-браузер (клиент) не может в режиме реального времени получать уведомления об изменении модели данных сервера.Пользователь должен создать запрос (например, нажав на ссылку), или для получения новых данных с сервера должен выполняться периодический запрос AJAX.

1 голос
/ 12 ноября 2010

Это звучит как лучший способ, учитывая спецификации / требования, которые вы изложили.

Другим способом является промежуточный шаг. Если у вас будет огромный объем трафика (в противном случае это не принесет никакой пользы, но, наоборот, может усложнить / замедлить процесс), добавьте еще одну таблицу, в которую записывается последний раз, когда набор данных извлекался и жесткий файл (скажем, XML), который, если «последний раз» считался слишком давно, создается из нового запроса, этот XML затем передает результат, возвращенный пользователю.

Итак:

1.Javascript вызывает скрипт PHP (AJAX)

2.PHP таблица пингов, которая содержит данные о времени последнего вывода полностью

3.Если время слишком велико, повторяется «основной» запрос и файл XML генерируется заново из выходных данных. Иначе пропустить до 4

4. Извлеките файл XML и выведите его в соответствии с требованиями для возвращенного AJAX

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