Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Помогите AJAX+ЧАТ

Сообщения:  [1-10]   [11-15] 

 
 автор: coloboc66   (02.05.2007 в 09:49)   письмо автору
 
   для: bronenos   (02.05.2007 в 05:35)
 

Не могу понять, зачем использовать аякс с фреймами, это вещи, друг друга взаимоисключающие. Зачем эти фреймы нужны, если сообщения можно сразу выводить на страницу? К тому же броузеры ифреймы блокируют. Если каждое новое сообщение выводить вверх страницы, то никаких прокруток не нужно.
...а данные каждого сообщения при помощи split ('\t') - можно подробней? Что здесь понимается под данными? Это имеется ввиду табуляция строки по длине?

   
 
 автор: bronenos   (02.05.2007 в 05:35)   письмо автору
 
   для: coloboc66   (02.05.2007 в 00:20)
 

неправда. я пишу чат, без хвастовства говорю, успешно
у меня 3 ифрейма, потому что если делать без них, то сообщения и список пользователей всю страницу опустят вниз, их надо делать с прокруткой
от дом я тоже отказался
в ответе с сервера я первой строчкой пишу md5 хэш всех сообщений и потом сравниваю его с последним полученным
если отличается, то разбиваю сообщения которые идут на следующих строках с помощью split ('\n'), а данные каждого сообщения при помощи split ('\t')
о доме можно забыть! только лишние проблемы с совместимосью!

   
 
 автор: coloboc66   (02.05.2007 в 00:20)   письмо автору
 
   для: shkryab   (01.05.2007 в 23:49)
 

При работе с аяксом нужно полностью отказаться от фреймов и от рефрешей. И начать заново изучать ява-скрипт и DOM. Такая вот беда...

   
 
 автор: shkryab   (01.05.2007 в 23:54)   письмо автору
 
   для: Staglu   (01.05.2007 в 23:48)
 

meta надо в таком случае ваще убрать, да и фреймы тоже не нужны... Чат ниразу не писал и не видел ни одного кода чата :) но думаю, что необходимо через некоторые интервалы времени обращаться к скрипту на сервере, передавая ему о сообщении которое являеться последним или сообщение клиента в соответствии с этим в скрипте должен формироваться ответ, который буде обрабатываться на клиенте.

   
 
 автор: shkryab   (01.05.2007 в 23:49)   письмо автору
 
   для: coloboc66   (01.05.2007 в 23:42)
 

Дык на сколько я понял вопрос стоял о том как по средствам AJAX-а обменяться данными между клиентом и сервером. Это я и попытался объяснить как можно более кратко и полно. Надеюсь получилось...

   
 
 автор: Staglu   (01.05.2007 в 23:48)   письмо автору
 
   для: coloboc66   (01.05.2007 в 23:42)
 

Что мне делать, у меня работает только с помошью <meta> тега кажде 5 секун происходит обновления. Можно сделать так, чтобы данные не обновлялись всей страницей, а докачивались только те которые только которые новые.

   
 
 автор: shkryab   (01.05.2007 в 23:44)   письмо автору
 
   для: Staglu   (01.05.2007 в 23:36)
 

Всмысле добавиться? То что в файле будет выводиться на страницу (echo или теги вне скрипта) будут содержаться в ответе от сервера. Сам скрипт может свершать какие угодно действия.

   
 
 автор: coloboc66   (01.05.2007 в 23:42)   письмо автору
 
   для: shkryab   (01.05.2007 в 23:29)
 

Все не так просто, как кажется:аякс - это только средство связи между клиентом и броузером. А обработку данных нужно делать либо на РНР на сервере, либо и на сервере и в броузере с помощью ява-скрипт. Здесь так просто никто не поможет, если только не отдаст свой собственный готовый скрипт чата.

   
 
 автор: Staglu   (01.05.2007 в 23:36)   письмо автору
 
   для: shkryab   (01.05.2007 в 23:29)
 

Спаибо, понял!!! А если информация в файле qwerty.php добавиться, то и в 1.html она тоже отоброзиться. И некаких обновленний страници 1.html делать не нужно??? Я праильно вас поня???

   
 
 автор: shkryab   (01.05.2007 в 23:29)   письмо автору
 
   для: Staglu   (01.05.2007 в 23:01)
 


var req;
function loadXMLDoc(url,data)
{
    if (window.XMLHttpRequest)
    {
        req = new XMLHttpRequest();
        req.onreadystatechange = processReqChange;
        req.open("POST", url, true);
        req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=cp1251");
        req.send(data);
    }
    else if (window.ActiveXObject)
    {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req)
        {
            req.onreadystatechange = processReqChange;
            req.open("POST", url, true);
            req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=cp1251");
            req.send(data);
        }
    }
}
function processReqChange()
{
    if (req.readyState == 4)
    {
        if (req.status == 200)
        {
            //всякие действия с полученными данными например:
            document.getElementById('elem').innerHTML=req.responseText;
        }
        else
        {
            alert("Не удалось получить данные:\n" + req.statusText);
        }
    }
}

Ответ от сервера будет находиться в req.responseText. В нем будет содержаться то, что в php скрипете выводилось на экран (echo "бла бла бла" - бла бла бла и будет содержаться в req.responseText). Параметры функции loadXMLDoc(url,data):
url - файл на сервере к которому Вы обращаетесь;
data - данные которые передаёте на сервер.
Переданные данные будут находиться в массиве $_POST[]. Данные должны передаваться в виде переменная=значение.
К примеру:
В файле 1.html вызываеться функция

...
loadXMLDoc("qwerty.php","msg=12345")
...

файл qwerty.php содержит такое:

...
echo $_POST[msg];
...

тогда ответ от сервера (который содержиться в req.responseText) будет содержать текст "12345".

   

Сообщения:  [1-10]   [11-15] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования