Подскажите, плиз.
Есть у меня скрипт который отправляет с помощью 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+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
|