пишу движок с сообщениями на сайт... и появилась очень хорошая идея, но не знаю как реализовать..
смотрите..
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
а для передачи данных из JS в PHP или обратно - удобно использовать JSON
Спустя 3 часа, 23 минуты, 52 секунды (6.08.2012 - 20:14) Ramzes_Ra написал(а):
за день работы нашлись две проблемы:
1. На любой странице, где бы юзер не был, при загрузке страницы срабатывает скрипт, который отправляет в обработчик данные таким образом:
там ещё много кода, но эт не важно..
Вопрос: как мне заменить стационарной 15 в GET запросе вставить $_SESSION['id'] ? дело в том, что echo $_SESSION['id'] это в php, а как в скрипт эту сессию вставить?
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
будет конечно, а ты не разрывай соединение, постоянно открытым держи и проверяй на наличие данных, наз. такая технология comet