당신은 로컬 스토리지 업데이트 할 때 트리거 내-뷰 2에서 몇 가지 소품을 업데이트 storage
이벤트를 수신 할 수 있습니다 저장 이벤트가되지 않기 때문에 행동의 here 설명 : EDIT (working plunk)
<my-view-2 id="myView2"></my-view-2>
<script>
window.onstorage = function(e) {
if (e.key !== 'someKeyYouWant') return;
document.getElementById('myView2').set('someProp', {
oldValue: e.oldValue,
newValue: e.newValue
});
};
</script>
을
saveToLs(e) {
e.preventDefault();
const newName = this.get('dogName');
const ls = window.localStorage;
const synthEvent = new StorageEvent('storage');
const eventConfig = [
'storage',
true,
true,
'myDog',
ls.getItem('myDog'),
newName
];
synthEvent.initStorageEvent(...eventConfig);
setTimeout((() => { // ensure async queue
ls.setItem('myDog', newName);
this.dispatchEvent(synthEvent);
}).bind(this), 0);
}
... 그리고 듣기 측 :
당신이 당신의 자신의 스토리지 이벤트를 트리거 할 수 있도록, 아래의 방법을 고려, 변경을 원래 창에 트리거
handleStorageUpdate(e) {
if (e.key !== 'myDog' || e.newValue === this.get('dogName')) return;
this.set('dogName', e.newValue);
}
if
동일한 값으로 조건부 중복 업데이트를 처리합니다. 당신이 당신의 페이지 (보기-2)를 업데이트하는 값이 변경되어 지금까지 동적으로 할 때 당신은 WebSocket을 사용할 수 있습니다
와 재생을 위해 여기
는 working plunk 또는 당신은 당신을 위해 eventstream를 사용할 수있는 백엔드가 그 목적. 그리고 현재 시나리오의 경우 변경 사항이 사용자 페이지에 반영되면 setinterval을 사용하여 매 초마다 로컬 저장소를 확인할 수 있습니다. –답장을 보내 주셔서 감사합니다. 현재 PWA로이 페이지를 만들고 있습니다. 오프라인에서도 웹 소켓이 작동합니까? 또한 setInterval을 사용하면 앱이 잠자기 상태가됩니까? 또는 계속 실행됩니까? – unkn0wnx
setInterval은 오프라인 모드에서 작동하며 예를 들어 앱이 절전 모드에 있으면 간격 확인을 중지하고 절전 모드에서 깨어날 때 재개 할 수 있음을 나타내는 로직을 설정할 수 있습니다. 그러나 웹 소켓의 경우 인터넷 연결이 필요하며 myview-1과 myview-2를 나란히 사용하는 경우 게시 메시지를 사용하여 my-view-2를 통신하고 업데이트 할 수 있습니다. –