Сравнение Глобального и Локального объекта в jQuery - PullRequest
1 голос
/ 15 октября 2019

В jQuery я сравниваю два объекта. Один глобальный, а другой - локальные объекты. Если оба не совпадают, то я хочу обновить интерфейс, иначе нет. Я сравниваю эти два через каждые 3 секунды. Данные в объекте поступают из файла, записанного программой прошивки с неизвестным интервалом.

В обычном случае (сначала запускается программа прошивки, а затем я открываю окно пользовательского интерфейса), я сравнил эти две и получил результат, который яхочу, проверено хорошо. Проблема возникает, когда пользовательский интерфейс уже открыт в Chrome, а затем я запускаю / перезапускаю программу прошивки. Его каждый раз дает "не то же самое". Я вручную менял, оба одинаковы.

var prev_status = $();   //global object

function load_ui(){
    //some code here
}

function ReadFile(){
    //some ajax code
}

function WriteFile(){
    //some ajax code
}

setInterval(function(){ 
    ReadFile(devPublishedUrl, function(status){
        console.log(prev_status, status);      //local object: status
        if (JSON.stringify(prev_status) === JSON.stringify(status)){
            console.log('same');
        }
        else{
            console.log('not same');
            load_ui();
            for(var index in status){
                prev_status[index] = status[index];
            }       
        }
    });
},  3000);

Что здесь не так? Я не хочу обновлять пользовательский интерфейс каждые 3 секунды без изменений. Данные в локальном объекте приведены ниже.

{
    "schedule":0,
    "sys":[
        0,
        0,
        0
    ],
    "temp":[
        106,
        32,
        33,
        1645,
        30,
        33,
        1642,
        33,
        30,
        104,
        33
    ],
    "end":[
        0,
        0
    ],
    "fault":[
        0,
        0
    ],
    "ssb":[
        0,
        0
    ],
    "sse":[
        0,
        0
    ],
    "fuel":[
        158,
        193
    ],
    "temp_th":[
        120,
        98
    ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...