Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kan jeg synkronisere data mellom faner i forskjellige domener


Kan jeg synkronisere data mellom faner i forskjellige domener


Nei, du kan ikke synkronisere data direkte mellom faner i forskjellige domener ved å bruke nettleserens innebygde lagringshendelser og mekanismer som localStorage eller sessionStorage. "Storage"-hendelsen og nettleserens lagrings-APIer er begrenset til policyen for samme opprinnelse, noe som betyr at de bare fungerer innenfor samme domene.

De viktigste begrensningene er:

1. Retningslinjer for samme opprinnelse: "Storage"-hendelsen og nettleserens lagrings-API-er (localStorage, sessionStorage) er underlagt policyen for samme opprinnelse. Dette betyr at hendelsen bare utløses i andre faner/vinduer som er fra samme domene, ikke på tvers av forskjellige domener.

2. Tverrdomenekommunikasjon: Det er ingen innebygd nettlesermekanisme for å direkte kommunisere dataendringer mellom faner eller vinduer på tvers av forskjellige domener. Policyen for samme opprinnelse forhindrer denne typen kommunikasjon på tvers av domener av sikkerhetsgrunner.

Hvis du trenger å synkronisere data mellom faner eller vinduer på tvers av forskjellige domener, må du bruke en serversideløsning eller en tredjepartstjeneste som kan fungere som mellomledd. Noen alternativer inkluderer:

1. Server-Side Synchronization: Du kan bruke en server-side-mekanisme, som en web-socket-tilkobling eller en delt database, for å spre dataendringer mellom de forskjellige domenene.

2. Tredjeparts meldingstjeneste: Du kan bruke en tredjeparts meldingstjeneste, som Firebase, til å publisere og abonnere på dataendringer på tvers av forskjellige domener.

3. Tilpasset kommunikasjon på tvers av domener: Du kan implementere en tilpasset kommunikasjonsmekanisme på tvers av domener, for eksempel å bruke HTML5 postMessage API i kombinasjon med en mellomliggende iframe eller et vindu.

Disse løsningene er imidlertid mer komplekse og krever ekstra infrastruktur eller tredjepartstjenester. Den innebygde nettleserlagringen og hendelsene er begrenset til kommunikasjon med samme opprinnelse.

Oppsummert kan du ikke synkronisere data direkte mellom faner i forskjellige domener ved å bruke nettleserens innebygde lagring og hendelser. Du må bruke en serverside- eller tredjepartsløsning for å oppnå datasynkronisering på tvers av domener.

Sitater:
[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