ไม่ คุณไม่สามารถซิงค์ข้อมูลระหว่างแท็บในโดเมนที่แตกต่างกันได้โดยตรงโดยใช้กิจกรรมและกลไกการจัดเก็บในเบราว์เซอร์ เช่น localStorage หรือ sessionStorage เหตุการณ์ "พื้นที่เก็บข้อมูล" และ API พื้นที่เก็บข้อมูลของเบราว์เซอร์ถูกจำกัดให้ใช้นโยบายที่มีต้นกำเนิดเดียวกัน ซึ่งหมายความว่าจะทำงานภายในโดเมนเดียวกันเท่านั้น
ข้อจำกัดที่สำคัญคือ:
1. นโยบายต้นกำเนิดเดียวกัน: เหตุการณ์ "พื้นที่เก็บข้อมูล" และ API พื้นที่เก็บข้อมูลของเบราว์เซอร์ (localStorage, sessionStorage) อยู่ภายใต้นโยบายที่มีต้นกำเนิดเดียวกัน ซึ่งหมายความว่าเหตุการณ์จะถูกทริกเกอร์เฉพาะในแท็บ/หน้าต่างอื่นๆ ที่มาจากโดเมนเดียวกัน ไม่ใช่ข้ามโดเมนที่ต่างกัน
2. การสื่อสารข้ามโดเมน: ไม่มีกลไกเบราว์เซอร์ในตัวเพื่อสื่อสารการเปลี่ยนแปลงข้อมูลโดยตรงระหว่างแท็บหรือหน้าต่างข้ามโดเมนที่ต่างกัน นโยบายที่มีต้นกำเนิดเดียวกันป้องกันการสื่อสารข้ามโดเมนประเภทนี้ด้วยเหตุผลด้านความปลอดภัย
หากคุณต้องการซิงค์ข้อมูลระหว่างแท็บหรือหน้าต่างในโดเมนต่างๆ คุณจะต้องใช้โซลูชันฝั่งเซิร์ฟเวอร์หรือบริการของบุคคลที่สามที่สามารถทำหน้าที่เป็นตัวกลางได้ ตัวเลือกบางอย่างได้แก่:
1. การซิงโครไนซ์ฝั่งเซิร์ฟเวอร์: คุณสามารถใช้กลไกฝั่งเซิร์ฟเวอร์ เช่น การเชื่อมต่อซ็อกเก็ตเว็บหรือฐานข้อมูลที่ใช้ร่วมกัน เพื่อเผยแพร่การเปลี่ยนแปลงข้อมูลระหว่างโดเมนต่างๆ
2. บริการส่งข้อความของบุคคลที่สาม: คุณสามารถใช้บริการรับส่งข้อความของบุคคลที่สาม เช่น Firebase เพื่อเผยแพร่และสมัครรับการเปลี่ยนแปลงข้อมูลในโดเมนต่างๆ
3. การสื่อสารข้ามโดเมนที่กำหนดเอง: คุณสามารถใช้กลไกการสื่อสารข้ามโดเมนที่กำหนดเองได้ เช่น การใช้ HTML5 postMessage API ร่วมกับ iframe หรือหน้าต่างตัวกลาง
อย่างไรก็ตาม โซลูชันเหล่านี้ซับซ้อนกว่าและต้องการโครงสร้างพื้นฐานเพิ่มเติมหรือบริการจากบุคคลที่สาม พื้นที่เก็บข้อมูลและกิจกรรมของเบราว์เซอร์ในตัวจำกัดเฉพาะการสื่อสารที่มีต้นกำเนิดเดียวกันเท่านั้น
โดยสรุป คุณไม่สามารถซิงค์ข้อมูลระหว่างแท็บในโดเมนต่างๆ ได้โดยตรงโดยใช้พื้นที่เก็บข้อมูลและกิจกรรมในตัวของเบราว์เซอร์ คุณจะต้องใช้โซลูชันฝั่งเซิร์ฟเวอร์หรือของบริษัทอื่นเพื่อให้เกิดการซิงโครไนซ์ข้อมูลข้ามโดเมน
การอ้างอิง:[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
-