Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kan jeg synkronisere data mellem faner i forskellige domæner


Kan jeg synkronisere data mellem faner i forskellige domæner


Nej, du kan ikke direkte synkronisere data mellem faner i forskellige domæner ved hjælp af browserens indbyggede lagerbegivenheder og mekanismer som localStorage eller sessionStorage. "Storage"-hændelsen og browserens storage-API'er er begrænset til samme oprindelsespolitik, hvilket betyder, at de kun virker inden for det samme domæne.

De vigtigste begrænsninger er:

1. Same-Origin Policy: "Storage"-hændelsen og browserens storage API'er (localStorage, sessionStorage) er underlagt samme oprindelsespolitik. Dette betyder, at hændelsen kun udløses i andre faner/vinduer, der er fra samme domæne, ikke på tværs af forskellige domæner.

2. Tværdomænekommunikation: Der er ingen indbygget browsermekanisme til direkte at kommunikere dataændringer mellem faner eller vinduer på tværs af forskellige domæner. Samme oprindelsespolitik forhindrer denne form for kommunikation på tværs af domæner af sikkerhedsmæssige årsager.

Hvis du har brug for at synkronisere data mellem faner eller vinduer på tværs af forskellige domæner, skal du bruge en serversideløsning eller en tredjepartstjeneste, der kan fungere som mellemled. Nogle muligheder omfatter:

1. Server-Side Synchronization: Du kan bruge en server-side-mekanisme, såsom en web-socket-forbindelse eller en delt database, til at udbrede dataændringer mellem de forskellige domæner.

2. Tredjepartsmeddelelsestjeneste: Du kan bruge en tredjepartsmeddelelsestjeneste, f.eks. Firebase, til at publicere og abonnere på dataændringer på tværs af forskellige domæner.

3. Tilpasset kommunikation på tværs af domæner: Du kan implementere en brugerdefineret kommunikationsmekanisme på tværs af domæner, såsom at bruge HTML5 postMessage API i kombination med en mellemliggende iframe eller et mellemliggende vindue.

Disse løsninger er dog mere komplekse og kræver yderligere infrastruktur eller tredjepartstjenester. Den indbyggede browserlagring og begivenheder er begrænset til kun kommunikation med samme oprindelse.

Sammenfattende kan du ikke direkte synkronisere data mellem faner i forskellige domæner ved hjælp af browserens indbyggede lager og begivenheder. Du skal bruge en server-side- eller tredjepartsløsning for at opnå datasynkronisering på tværs af domæner.

Citater:
[1] https://www.reddit.com/r/AZURE/comments/194hsdu/sync_files_with_customer_on_another_domain/
[2] https://www.sqlservercentral.com/forums/topic/set-up-database-sync-between-2-different-domain-servers
[3] https://torsten-muller.dev/javascript/communication-between-browser-tabs-synchronizing-state/
[4] https://nabeelvalley.co.za/blog/2024/07-03/localstorage-based-sync/
[5] https://community.cisco.com/t5/managing-users/user-identities-with-ad-sync-and-multiple-domains/td-p/4880178