|
|
|
| Чат решил сделть на php + mysql. Сервера дома поднял windowsXP Apache + php +mysql Регистрационные формочки написал. Текстовый блок решил сделать из тэга textarea со свойством readonly, а все данные о пользователях и их сообщения хранить в базе mysql. Сделал форму ввода сообщений и запустил. Все работает, только третий день не могу разобраться с обновлением экрана этого самого чата, то есть с обновлением textarea. Написал на javascript функцию, которая при помощи php скрипта подключается к базе данных mysql и присваивает значение суммы всех сообщений переменной textarea.value. Такая операция происходит раз в 10 сек. Для проверки открываю два сеанса браузера, иду к себе в чат от имени разных пользователей, проверяю. Предположим подключился user 1 потом user 2, сообщение от user 2 через 10 сек не высвечивается на textarea пользователя user 1, хотя автор сообщения сразу его видит, в таблице mysql сообщение создается при отправке, но у user 1 эти изменения как будто не происходили... мистика.. Каждый сеанс связи я завершаю командой mysql_close(татата), помогите разобраться. Все пользователи базы заходят под root ом. | |
|
|
|
|
|
|
|
для: Frag
(14.07.2006 в 17:24)
| | выводите на экран обе контрольные суммы (и локальную и удаленную). Как я понимаю, необходимость обновления проверяется по ним. Тогда будет ясно почему не обновляются данные у пользователя user1 | |
|
|
|
|
|
|
|
для: Loki
(14.07.2006 в 19:25)
| | Необходимость обновления содержимого textarea.value определяется событием onload тега body в html. Это событие onload вызывает функцию java, которая каждые 10 сек. вызывает сама себя, и присваивает textarea.value результат выполнения другой функции, уже на php, которая в свою очередь осуществляет подключение к базе данных mysql, считывание данных из таблицы chat, и вывод их в textarea.value. В связи с этим я не очень понимаю, что значит "контрольная сумма" локальная и удаленная? Сумма чего? ... Данные у пользователя user1 не обновляются по какой-то странной причине, как будто user1 не чувствует изменений таблицы chat (которые можно узреть из командной строки управления мускулом). Для user1 она так и остается в том виде, в котором была получена при первом входе в чат. Кстати если ввести новое сообщение user1 пользователем, и нажать на отправку, то появляются и только что написанное послание, и предыдущее сообщение от user2. В этот момент начинает отставать по кол-ву полученных сообщений user2. Вот никак не могу въехать в принцип обновления этих самых таблиц в sql е ... По моей идее любое отставание в получении сообщений должно пропадать каждые 10 сек. Может быть без обновления страницы это совсем невозможно??? HEEELP | |
|
|
|
|
|
|
|
для: Frag
(14.07.2006 в 20:10)
| | У вас яваскрипт каждые 10 сек тянет с сервера все сообщения, или просто проверяет обновления? логично проверить какую информацию отдает скрипт, к которому обращается JS | |
|
|
|
|
|
|
|
для: Loki
(14.07.2006 в 23:55)
| | У меня каждые 10 сек выводится на экран содержимое таблицы chat. На предмет обновления ничего не проверяется. Но изменения в таблице явно происходят. Я уже проверил и перепроверил все. Либо менять принцип вывода на экран данных, либо разобраться с таким скверным поведением mySQL сервера... Скорее всего я чего-то недопонимаю в транзакциях, с другой стороны, причем тут транзакции.. Но они ближе всего по теме. В интернете ответ на вопрос тоже пока не нашел. Никому видимо это не инетересно... | |
|
|
|
|
|
|
|
для: Frag
(14.07.2006 в 23:59)
| | Пациент: Доктор, меня все игнорируют...
Доктор: Кто здесь?! | |
|
|
|
|
|
|
|
для: Frag
(14.07.2006 в 23:59)
| | я уже написал: проверяйте какую информацию отдает скрипт к которому обращается JS, если он отдает все верно - ищите ошибку в JS | |
|
|
|