Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.11.2015, 12:10
Интересующийся
Отправить личное сообщение для rostik1991 Посмотреть профиль Найти все сообщения от rostik1991
 
Регистрация: 03.11.2015
Сообщений: 11

Сравнить старое и новое значения
Доброе утро. Есть у меня скрипт который отправляет запрос на сервер каждых 3 секунды. Проблема у меня в том, что я не в курсе как сохранить и сравнить два значения. Сейчас покажу.
$(document).ready(function(){
    var audio = $('#audio_message');
    setInterval(function(){checkData()}, 3000);
    function checkData(){
        $.ajax({
            url:'',
            type: "POST",
            dataType: 'html',
            data: {
                check_orders:1
            }, 
            success: function (res) {
                var curr_id = res;
                var new_id;
                //тут мне надо сравнить два значения,
//значение предыдущего запроса и значение текущего запроса
//то есть, нужно сохранить значение самого первого запроса,
//и если значение следующего запроса такое же, 
//мы просто ждем следующий запрос,
//если значение отличается - запускаем аудиофайл
                audio.get(0).play()
//и сохраняем его в переменную new_id
//сравнивать нужно curr_id и new_id
            },
            error: function( xhr, textStatus ) {
                alert( [ xhr.status, textStatus ] );
            }
        })
    }
});
Ответить с цитированием
  #2 (permalink)  
Старый 08.11.2015, 12:24
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Я чо то неуловил в чём прикол.

$(document).ready(function(){
    var oldValue,
          audio = $('#audio_message');

    setInterval(function(){checkData()}, 3000);
    function checkData(){
        $.ajax({
            url:'',
            type: "POST",
            dataType: 'html',
            data: {
                check_orders:1
            }, 
            success: function (res) {
                if(oldValue!==res) audio.get(0).play() //сработает при первом запуске то же
                oldValue=res; 
            },
            error: function( xhr, textStatus ) {
                alert( [ xhr.status, textStatus ] );
            }
        })
    }
});
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 08.11.2015 в 12:30.
Ответить с цитированием
  #3 (permalink)  
Старый 08.11.2015, 12:35
Интересующийся
Отправить личное сообщение для rostik1991 Посмотреть профиль Найти все сообщения от rostik1991
 
Регистрация: 03.11.2015
Сообщений: 11

Спасибо, работает.
Но теперь выскочила другая проблема. Объясню всю суть моего обращения.
Этот скрипт проверяет нет ли в базе нового заказа, и возвращает id заказа. Надо сделать так, чтобы если новый заказ уже один раз прозвучал, чтобы после этого аудио файл не включался до тех пор, пока не сделают еще один заказ (даже после перезагрузки страницы). Может подскажете как решить этот вопрос ?
Ответить с цитированием
  #4 (permalink)  
Старый 08.11.2015, 12:49
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

Это сложный вопрос.

Для идеального решения надо понимать
1) привязаны ли звуковые опопвещения к конкретному пользователю или достаточно их привзяать к браузеру.
2) почему задачу решаете не через сокеты или long polling а через регулярные http запросы
3) если используем запросы то почему решаем задачу с определением изменений на клиенте а не на сервере.

Ну если на клиенте и с ajax запросами и не привязывать к конкретному юзеру, то достаточно просто хранить предыдущее значение в

1) куки (только если в res какое-то число или крохотная строка),
2) или web storage http://htmlbook.ru/html5/storage,
3) или IndexedDB http://habrahabr.ru/post/213515/
4) ... может где-то ещё (websql и пр)

выбор технологии нужно делать в зависимости от требований к поддержке браузеров
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 08.11.2015 в 13:13.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача нового значения value в select tvixa Элементы интерфейса 5 08.09.2015 15:41
Множественные значения в input - ЗА ВОЗНАГРАЖДЕНИЕ! Pb160 Events/DOM/Window 0 03.08.2015 12:29
Присвоение значения тегу value GreenJo Javascript под браузер 3 28.04.2014 10:43
Десятичные значения в он-лайн калькуляторе. Natali_SPb Общие вопросы Javascript 3 03.11.2013 21:46
получение значения из классов karmis Events/DOM/Window 1 14.10.2011 19:09