X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Остановка функции возврата
yuriy_hb
yuriy_hb
Topic Starter сообщение 11.9.2010, 19:55; Ответить: yuriy_hb
Сообщение #1


Подскажите, плиз.
Есть у меня скрипт который отправляет с помощью AJAX даные на сервер:

setInterval("Load();", 2000); // создаём таймер который будет вызывать загрузку сообщений каждые 2 секунды (2000 милесукунд)


function Load(em) {

// проверка на состояния инициализации перменной email
// если переменная em не определена
if(!em) {
em = email;}

$.cookie('emailSeller', em); //установить значение cookie
// Проверяем можем ли мы загружать сообщения. Это сделанно для того, что бы мы не начали загрузку заново, если старая загрузка ещё не закончилась.
if(!load_in_process)
{
load_in_process = true; // загрузка началась
$.getJSON("modul/chat/ajaxChatKlient.php",
{
act: "load", // указываем на то что это загрузка сообщений
last: last_message_id, // передаём номер последнего сообщения который получил пользователь в прошлую загрузку
email: em, // email продавца
rand: (new Date()).getTime()
},


function(jsonObject) {

$("#chat_area").prepend(jsonObject.param1);
last_message_id = jsonObject.param2;
email = jsonObject.param3;

$(".scroll-wrap").scrollTop($(".scroll-wrap").get(0).scrollHeight); // прокручиваем сообщения вниз
load_in_process = false; // говорим что загрузка закончилась, можем теперь начать новую загрузку

});

}
}

//Форма:
<div id="dialog" title="On-line чат">
<form id="pac_form">
<div class="scroll-wrap">
<div id="chat_area"><!-- Сюда мы будем добавлять новые сообщения --></div>
</div>
<textarea id="msg_text"></textarea>
<input type="button" id="closeDialog" class="sendMassage" value="Закрыть" />
<input type="submit" value="Отправить" class="sendMassage" />
</form>
</div>



Проблема в том, что функция Load() вызываеться каждые 2 с. и отпрвляет даные на сервер. Есть еще кнопка "Отправить", при нажатии на которую также запускаеться функция Load(). И вот когда, вдруг пользователь кликает на этой кнопке также запускаеться функция Load(): даные находяться на этапе отправки с сервера вызвание функцие Load() запущеной с помощью setInterval("Load();", 2000), тогда как новая порция информации запущеная кнопкой "Отправить" ждет очередной отправки на сервер. Даные возвращены с сервера раз на раз не соответствуют нужному результату, поскольку серверу нужно скажем передать даные запущеные спомощью кнопки "Отправить", а не с помощбю таймера. Можно ли как-нибуть приостановить возврат даных и вставку их в DOM в случае если пользователь кликнул на кнопке "Отправить"?

Спасибо

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Smarty и собственные функции
Как реализовать?
3 RussiaStudent 8552 12.12.2009, 18:41
автор: ZiTosS


 



RSS Текстовая версия Сейчас: 20.4.2024, 1:01
Дизайн