Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kan jag synkronisera data mellan flikar i olika domäner


Kan jag synkronisera data mellan flikar i olika domäner


Nej, du kan inte direkt synkronisera data mellan flikar i olika domäner med hjälp av webbläsarens inbyggda lagringshändelser och mekanismer som localStorage eller sessionStorage. "Storage"-händelsen och webbläsarens lagrings-API:er är begränsade till samma ursprungspolicy, vilket innebär att de bara fungerar inom samma domän.

De viktigaste begränsningarna är:

1. Same-Origin Policy: "Storage"-händelsen och webbläsarens lagrings-API:er (localStorage, sessionStorage) är föremål för samma ursprungspolicy. Detta innebär att händelsen bara utlöses i andra flikar/fönster som är från samma domän, inte över olika domäner.

2. Cross-Domain Communication: Det finns ingen inbyggd webbläsarmekanism för att direkt kommunicera dataändringar mellan flikar eller fönster över olika domäner. Policyn för samma ursprung förhindrar denna typ av kommunikation över flera domäner av säkerhetsskäl.

Om du behöver synkronisera data mellan flikar eller fönster över olika domäner, skulle du behöva använda en lösning på serversidan eller en tredjepartstjänst som kan fungera som mellanhand. Några alternativ inkluderar:

1. Server-Side Synchronization: Du kan använda en mekanism på serversidan, som en webbsocket-anslutning eller en delad databas, för att sprida dataändringar mellan de olika domänerna.

2. Tredjepartsmeddelandetjänst: Du kan använda en meddelandetjänst från tredje part, som Firebase, för att publicera och prenumerera på dataändringar över olika domäner.

3. Anpassad kommunikation över flera domäner: Du kan implementera en anpassad kommunikationsmekanism över flera domäner, till exempel att använda HTML5 postMessage API i kombination med en mellanliggande iframe eller ett fönster.

Dessa lösningar är dock mer komplexa och kräver ytterligare infrastruktur eller tredjepartstjänster. Den inbyggda webbläsarens lagring och händelser är begränsade till enbart kommunikation med samma ursprung.

Sammanfattningsvis kan du inte direkt synkronisera data mellan flikar i olika domäner med hjälp av webbläsarens inbyggda lagring och händelser. Du skulle behöva använda en lösning på serversidan eller från tredje part för att uppnå datasynkronisering över flera domäner.

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