[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: on-line проверка базы
Ramzes_Ra
Не совсем тема по php, но всё же..
пишу движок с сообщениями на сайт... и появилась очень хорошая идея, но не знаю как реализовать..

смотрите..
1. Допустим я написал сообщение пользователю и нажал отправить.
По нажатию кнопки оно заносится в базу
2. У другого пользователя проверяется база на наличие новых сообщения, и, если оно есть, то вылетает красивое окошко с сообщением, по нажатию на которое он перейдет на страницу данного сообщения, чтобы сразу написать ответ.


Скрипт я уже написал и он работает, если, скажем, пользователь обновит страницу (по обновлению страницы будет новый запрос к БД и выяснится, есть ли сообщение).

Вопрос: А можно ли как-то делать автоматический запрос к БД без обновления страницы?

у меня закралось такое решение, что можно в отдельном php файле написать запрос, а через JavaScript на странице каждые 10 секунд обращаться к этому php файлу.. это можно сделать через setInterval
НО! Есть в данном решении проблемы, которые мне не по силам:
1. скрипт будет открывать файл php каждые 10 секунд, а не просто выполнять
2. передача переменных из php в js и наоборот вроде как тяжелая задача..
что посоветуете?



Спустя 44 минуты, 37 секунд (6.08.2012 - 16:50) Игорь_Vasinsky написал(а):
для этого используется AJAX - обработчик работает в фоне.
а для передачи данных из JS в PHP или обратно - удобно использовать JSON

Спустя 3 часа, 23 минуты, 52 секунды (6.08.2012 - 20:14) Ramzes_Ra написал(а):
за день работы нашлись две проблемы:

1. На любой странице, где бы юзер не был, при загрузке страницы срабатывает скрипт, который отправляет в обработчик данные таким образом:
 xmlhttp.open ( "GET", "log.php?id=15&sl&rn="+Math.random(), true );

там ещё много кода, но эт не важно..

Вопрос: как мне заменить стационарной 15 в GET запросе вставить $_SESSION['id'] ? дело в том, что echo $_SESSION['id'] это в php, а как в скрипт эту сессию вставить?

Цитата
для этого используется AJAX - обработчик работает в фоне.

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

Спустя 28 минут, 32 секунды (6.08.2012 - 20:42) johniek_comp написал(а):
xmlhttp.open ( "GET", "log.php?id=<?=$_SESSION['id']?>&sl&rn="+Math.random(), true );

Спустя 13 минут, 47 секунд (6.08.2012 - 20:56) Ramzes_Ra написал(а):
<?=$_SESSION['id']?>

работает... а разве так можно? В том смысле, что в инете везде написано, что это так сложно, а здесь просто пара символов и всё...

и вопрос про нагрузку на сервер открытый... мой скрипт не будет сильно грузить сервер? Ато ведь много запросов к БД получается..

Спустя 12 часов, 32 минуты, 25 секунд (7.08.2012 - 09:28) johniek_comp написал(а):
Ramzes_Ra
будет конечно, а ты не разрывай соединение, постоянно открытым держи и проверяй на наличие данных, наз. такая технология comet
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.