Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> динамическое обновление textarea, с заданным временным интервалом 
:(
    Опции темы
begin
Дата 25.6.2009, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 415
Регистрация: 16.5.2007

Репутация: нет
Всего: нет



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

Нашел вот такой пример:
Код

<html>
    <script>
      var xmlDoc = null ;
  
      function load() {
        if (typeof window.ActiveXObject != 'undefined' ) {
          xmlDoc = new ActiveXObject("Microsoft.XMLHTTP");
          xmlDoc.onreadystatechange = process ;
        }
        else {
          xmlDoc = new XMLHttpRequest();
          xmlDoc.onload = process ;
        }
        xmlDoc.open( "GET", "test-request.html", true );
        xmlDoc.send( null );
      }
  
      function process() {
        if ( xmlDoc.readyState != 4 ) return ;
        document.getElementById("output").value = xmlDoc.responseText ;
      }
 
    </script>
  
    <body>
      <textarea id="output" cols="60" rows="20">&lt;empty&gt;</textarea>
      <br></br>
      <button onclick="load()">Load</button> &nbsp;
    </body>
  </html>


Но есть вопросы:
1. нужно ли подгружать какую-либо библиотеку
2. как сделать автовызов через определенные промежутки времени
3. где вставить вызов пхп-кода (при отправке нового сообщения от пользователя на сервер)
И общий вопрос:
насколько такой механизм повысит нагрузку на сервер и насколько он увеличит трафик?
PM MAIL   Вверх
bars80080
Дата 25.6.2009, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



1. нет
2. setInterval('load()', 60000);
3. "test-request.html" - вот вызов страницы. напиши адрес своего скрипта заместо неё
 
PM MAIL WWW   Вверх
begin
Дата 27.6.2009, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 415
Регистрация: 16.5.2007

Репутация: нет
Всего: нет



Понял.
Еще вопрос: там в коде есть вот такая строка:
Код

xmlDoc.open( "GET", "test-request.html", true );

Но мне надо вызывать скрипт методом POST и с параметрами. Как мне это сделать?
Код

xmlDoc.open( "POST", "myscript.php", true );

а вот как передать параметры?
PM MAIL   Вверх
bars80080
Дата 27.6.2009, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



Код

xmlDoc.open( "POST", "test-request.html", true );
xmlDoc.send(data);



где data - твои параметры в виде: 
Код

data = "perem1=value1&perem2=value2&... ";

PM MAIL WWW   Вверх
begin
Дата 27.6.2009, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 415
Регистрация: 16.5.2007

Репутация: нет
Всего: нет



Цитата(bars80080 @ 27.6.2009,  14:35)
где data - твои параметры в виде: 
Код

data = "perem1=value1&perem2=value2&... ";

Скажите, а длина переменной дата неограничена? Просто такой синтаксис больше похож на GET, а там ведь есть ограничение браузера на длину строки. Тут такого не возникнет?
PM MAIL   Вверх
bars80080
Дата 27.6.2009, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



не ограничена. 

разница между get и post, не в том как они отправляют параметры, а в том, где они их отправляют. в случае get-запроса данные находятся прямо в адресе запроса, а в случае post-запроса, они находятся в "теле", т.е. идут после первичных заголовков. а скреплены с помощью & они так же

Добавлено через 1 минуту и 30 секунд
хотя вру, ограничена директивами .htaccess и настройками сервера (несколько мегабайт). как ограничение на размер закачиваемых файлов
PM MAIL WWW   Вверх
begin
Дата 28.6.2009, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 415
Регистрация: 16.5.2007

Репутация: нет
Всего: нет



Все сделал, но вот проблема.
В коде написал так:
Код

xmlDoc.open( "POST", "message2.php", true );
xmlDoc.send("id=1243");

У текстового поля для нового сообщения имя такое: text_new
Так вот скрипт message2.php не видит ни переменную $_POST['id'] ни переменную $_POST['text_new']
Подскажите, почему?
PM MAIL   Вверх
bars80080
Дата 29.6.2009, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



message2.php точно запускается? а если указать абсолютный адрес? и добавьте случайный параметр:

Код

var tm = new Date();
var par = tm.getHours() + tm.getMinutes() + tm.getSeconds();
url = 'http://server.ru/message2.php?param=' + par;
xmlDoc.open( "POST", "url", true );

PM MAIL WWW   Вверх
begin
Дата 29.6.2009, 01:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 415
Регистрация: 16.5.2007

Репутация: нет
Всего: нет



Да, message2.php точно запускался - я специально выводил надпись перед запросом к базе. Итог: видна надпись, а далее сообщение об ошибке в запросе (из-за тех недостающих данных). Все это как и надо, выводилось в первом textarea.

Когда сделал по вашему последнему совету, то туда тебе грузится главная страница сайта - т.е. ведет себя, как будто вообще не находит такой скрипт. Может из-за абсолютного адреса, а может из-за параметра в адресе.

Главное то - что все данные теряются.  smile 
PM MAIL   Вверх
An6rey
Дата 29.6.2009, 03:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 13.10.2008

Репутация: 3
Всего: 5



Для запроса GET строку параметров присоединяй к URL в open

Для запроса POST стрку параметров передавай в send()

By the way - запросы POST не кэшируются и случайный парметр не нужен

PM MAIL   Вверх
begin
Дата 29.6.2009, 03:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 415
Регистрация: 16.5.2007

Репутация: нет
Всего: нет



Цитата(begin @ 28.6.2009,  21:50)
Все сделал, но вот проблема.
В коде написал так:
Код

xmlDoc.open( "POST", "message2.php", true );
xmlDoc.send("id=1243");

У текстового поля для нового сообщения имя такое: text_new
Так вот скрипт message2.php не видит ни переменную $_POST['id'] ни переменную $_POST['text_new']
Подскажите, почему?

An6rey, вот же я попробовал и отписался - скрипт не видит поступающих данных ни из формы ни из send  smile 
PM MAIL   Вверх
An6rey
Дата 29.6.2009, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 13.10.2008

Репутация: 3
Всего: 5



begin
Так не бывает
Выкладывай все - лучше в архиве - найду причину

Или ты прикалываешься?

Это сообщение отредактировал(а) An6rey - 29.6.2009, 12:57
PM MAIL   Вверх
begin
Дата 29.6.2009, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 415
Регистрация: 16.5.2007

Репутация: нет
Всего: нет



Цитата(An6rey @ 29.6.2009,  12:57)
Выкладывай все - лучше в архиве - найду причину

Выкладываю:


Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  _________.rar 0,93 Kb
PM MAIL   Вверх
An6rey
Дата 29.6.2009, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 36
Регистрация: 13.10.2008

Репутация: 3
Всего: 5



xmlDoc.setRequestHeader("Content-Type","application/x-www-form-urlencoded")

А ты как думал?

Это сообщение отредактировал(а) An6rey - 29.6.2009, 22:55
PM MAIL   Вверх
begin
Дата 29.6.2009, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 415
Регистрация: 16.5.2007

Репутация: нет
Всего: нет



Цитата(An6rey @ 29.6.2009,  22:54)
xmlDoc.setRequestHeader("Content-Type","application/x-www-form-urlencoded")

Подскажите, где именно в коде java-скрипта нужно вставлять эту строку? После какой строки?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0942 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.