У меня два вопроса, связанные между собой: 1) Есть ли специальные события, которые реагируют на изменение значения переменной? 2) К примеру есть следующий код:
if(xhr.status == 200){
let jsonic = JSON.parse(xhr.responseText)
}
Как можно сравнить одну и ту же переменную jsonic с разницей в 2 секунды?
1) Есть ли специальные события, которые реагируют на изменение значения переменной?
Специального события нет, но вы можете написать функции getter/setter. В setter которых будет либо генерироваться событие, либо выполняться нужный код.
Это сильно улучшит архитектуру, если таких переменных станет больше.
var jsonic = {
_val: 0,
set value(val) {
this._val = val;
// Выполняем нужный код. Опционально можно генерировать событие, зависит от закладываемой архитектуры взаимодействия
alert( val );
},
get value() {
return this._val;
}
};
jsonic.value = 123;
console.log( jsonic.value );
Если необходимо что-то делать только при изменении значения, можно немного модифицировать код:
var jsonic = {
_val: 0,
set value(val) {
if( this._val == val ) {
return false;
};
this._val = val;
// Выполняем нужный код. Опционально можно генерировать событие, зависит от закладываемой архитектуры взаимодействия
alert( val );
},
get value() {
return this._val;
}
};
jsonic.value = 123;
console.log( jsonic.value );
// Второго alert не будет
jsonic.value = 123;
var oldJsonicText;
var jsonicText;
setInterval(function() {
if (oldJsonicText != jsonicText) {
...
oldJsonicText = jsonicText;
}
}, 2000);
if(xhr.status == 200){
if (jsonicText != xhr.responseText) {
...
jsonicText = xhr.responseText;
}
let jsonic = JSON.parse(xhr.responseText);
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости