당신은 이상적으로 변수 이름과 인수로 요소의 ID를 제공함으로써, 관찰자 패턴의 간단한 구현 (더 큰 프레임 워크)을 부탁드립니다.
bind()
함수를 정의한 경우 x
을 반복적으로 폴링하여 변경되었는지 확인하는 것이 좋습니다. bind
다음과 같이 호출 할 수 있습니다 참고 :
bind('x','value_display');
동작하는 예제 :
var x = 100;
function bind(varName, elementId){
var lastValue;
function check(){
if(lastValue !== window[varName]){
lastValue = window[varName];
document.getElementById(elementId).innerHTML = lastValue;
}
}
//poll for changes every 50 milliseconds
setInterval(check, 50);
}
//bind x to value_display
bind('x','value_display');
//test function by changing x every 100th millisecond
setInterval(function(){
x = +new Date;
},
100
);
<div id="value_display"></div>
개인적으로
, 나는 폴링을 사용하여 이상 경량 게시자/가입자 모듈을 선호 함수에 의해 제어되기 위해서는 변수 x
에 할당해야합니다 (일종의 setter). 관찰자 패턴이나 펍/서브 패턴을 연구하면 (큰) 프레임 워크 —보다 훨씬 적은 코드로 쉽게 구현할 수 있지만 폴링 방식만큼 가벼운 것은 아닙니다.
: http://stackoverflow.com/ question/1759987/javascript-or-jquery에서 듣거나 for-variable-changes를 사용하거나 https://vuejs.org/guide/ –
과 같은 간단한 프레임 워크를 사용해보십시오. 간단한 과제를 통해 데이터를 업데이트하려고한다면 , 당신은 ['Proxy'] (https://developer.mozilla.org/en-US/docs/Web/)를 사용할 수 있습니다. JavaScript/Reference/Global_Objects/Proxy)를 사용하여 변경 사항을 수신하지만 [여러 브라우저에서 지원되지 않습니다] (http://caniuse.com/#feat=proxy). 그렇지 않으면 함수 호출을 통해 데이터를 할당하는 것을 고려하십시오. – zzzzBov