| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Периодичное получение данных |
| Автор: Gold Dragon 12.5.2010, 09:09 |
| Суть проблемы следующая.. В базе формируются постоянно данные. Мне необходимо с определённой периодичностью получать эту информацию на странице. Это что-то автоматического обновление страницы каждые 3 секунды. Как это можно реализовать с минимальной нагрузкой? результатом будет вывод цифр в столбик |
| Автор: Guedda 12.5.2010, 09:25 |
| C минимальной нагрузкой копай в сторону cron |
| Автор: Gold Dragon 12.5.2010, 09:29 |
| cron это наверное не совсем то.. Я должен открыть определённую страницу с браузере |
| Автор: Guedda 12.5.2010, 09:52 |
| Ну тогда методами AJAX думаю будет самое оптимальное (с некоторой периодичностью собирать данные и обрабатывать их) - допустим, как это делает твиттер (когда появляются новые твиты). |
| Автор: Gold Dragon 12.5.2010, 09:54 |
| да, это наверное самое оптимально.. К сожалению я только-только взялся за Аякс... :( может у кого примерчик есть или ссылка на пример? |
| Автор: NewDima 12.5.2010, 11:06 |
| http://javascript.ru/setTimeout + http://api.jquery.com/jQuery.getJSON/ С сервера передаете некоторую метку последней переданной информации, например id последней переданной записи. А на клиенте запрашиваете все данные после этой записи, ну и соответственно обновляете информацию |
| Автор: Gold Dragon 12.5.2010, 11:10 |
| большое спасибо! сейчас попробую |
| Автор: MoLeX 12.5.2010, 11:20 | ||
как то так:
|
| Автор: Gold Dragon 13.5.2010, 07:40 | ||||||
| вот что у меня получилось дамп
sms.php
index.html
что лишнее, а что можно подправить? Хотя эту тему в другой раздел я думаю нужно перенести.. MoLeX, что-то не совсем понял твой код |
| Автор: MoLeX 13.5.2010, 07:42 |
| Gold Dragon, да тоже самое что у тебя, реализация только через get сделана Добавлено через 45 секунд + у меня не затирается информация, а добавляется |
| Автор: Gold Dragon 13.5.2010, 07:43 |
| а в чём разница? что лучше или хуже? Добавлено через 6 минут и 55 секунд ну про добавление я знаю.. я просто у себя это не сделал, так как пока не понял как мне передавать последний ID чтобы запрашивать из базы не всё, а только последнее.. Вот тогда и понадобится добавление. кто знает как это реализовать? |
| Автор: NewDima 13.5.2010, 11:56 | ||||
| Проще всего как-то так: В конце вывода кода
+ использовать append как у MoLeX. Только скрипту с запросом передавать lastId. А в ответе sms.php
Ну и в sms.php делать запрос всех записей с id больше переданной Добавлено через 1 минуту и 59 секунд только если СУБД умеет использовать id, которые пропущены в результате удаления, этот способ не будет работать конкретно, придется работать с временной меткой, например |
| Автор: Gold Dragon 13.5.2010, 12:00 |
| NewDima, что-то я запутался.. ты можешь мой код подправить? |
| Автор: MoLeX 13.5.2010, 12:06 | ||||
sms.php
Добавлено @ 12:06 как то так, код не проверял |
| Автор: NewDima 13.5.2010, 12:34 | ||||
| MoLeX, не, так не покатит, значение передаваемого id придется обновлять после каждого запроса. Проще сделать это будет, как я написал Я поправил код Molex sms.php
|
| Автор: Gold Dragon 13.5.2010, 12:45 |
| пока не проверил код, поясните чем $.get лучше $.load? Добавлено через 2 минуты и 38 секунд или может вообще POST... ? |
| Автор: MoLeX 13.5.2010, 12:52 | ||||||
NewDima,
а разве так можно??? переписал: sms.php
Добавлено через 41 секунду P.S. sms.php надо переделать малость, а именно определение последнего id |
| Автор: NewDima 13.5.2010, 13:05 |
| Если не смотреть на то, что у меня нет проверки на валидность $row, то можно, код выполнится на клиенте когда будет добавлен с jquery |
| Автор: NewDima 13.5.2010, 13:10 |
| Зачем? Вы же и так делаете выборку всех записей. В последней и будет нужное значение. А, кстати, понял, о чем Molex сказал. Конечно, значение по-любому будет не валидно в $row после последнего вызова mysql_fetch_object, но это легко исправить |
| Автор: Gold Dragon 13.5.2010, 13:13 |
| Смотря какая сортировка будет а я не понял :( |
| Автор: NewDima 13.5.2010, 13:16 |
| Gold Dragon, зато max id не всегда самая последняя запись. В таком случае, думаю у вас по-любому у новостей, или что там, будет временная метка добавления, вот от нее и отталкивайтесь =) |
| Автор: Gold Dragon 13.5.2010, 13:34 |
| сортировка по разным параметрам в базе будет постоянно.. а вот изменение AUTO_INCREMENT я что-то и не знаю когда используется.. Да же если и так, то это очень и очень редко и то при администрировании базы |
| Автор: Gold Dragon 17.5.2010, 10:36 |
| Немного усложнённый вопрос... А можно ли как-то получать этот набор, но без тэгов, т.е. чистые данные на чистом листе? |