Ukwazi i-JavaScript Broadcast Channel API yokuxhumana kwe-Cross-Tab

Isibuyekezo sokugcina: 09/13/2026
  • Ivumela ukuxhumana kwesikhathi sangempela, okuqondiswa kabili phakathi kwama-windows, amathebhu, ama-iframes, kanye nabasebenzi abasendaweni efanayo.
  • Isebenzisa imodeli yokushicilela-ukubhalisa lapho izimo zibhalisela khona isiteshi esiqanjwe igama ukuze kushintshiswane ngedatha.
  • Isebenzisa i-algorithm ye-clone ehlelekile ukuze idlulisele izinto eziyinkimbinkimbi ngaphandle kokwenza i-serialization ngesandla.

Ukuboniswa kwe-3D okuzayo kwe-JavaScript Broadcast Channel API, okubonisa idatha yokusakaza yefasitela eliphakathi ifinyelela kumafasitela esiphequluli azungezile endaweni engenalutho yedijithali.

Wake wazibuza ukuthi amanye amawebhusayithi abonakala kanjani ekwazi ngokushesha uma uphumile kwenye ithebhu, noma ukuthi inqola yokuthenga ibuyekeza kanjani kumafasitela amathathu ahlukene ngaphandle kokuvuselelwa kwekhasi elilodwa? Isikhathi eside, abathuthukisi kwadingeka bathembele ezindleleni ezinzima zokwenza izinto njengokuhlola iseva noma ukugenca imicimbi yesitoreji sendawo. Ngenhlanhla, kunesixazululo sendabuko, esihle esakhelwe ngqo kusiphequluli esisingatha lokhu kuthwala okunzima ngaphandle kwanoma yimiphi imitapo yolwazi evela eceleni.

I -Broadcast Channel API isebenza njengebhasi lemiyalezo elilula, ivumela izimo ezahlukene zokuphequlula—njengethebhu, ama-iframes, kanye nabasebenzi bewebhu—ukukhulumisana uma nje babelana ngemvelaphi efanayo (okusho iphrothokholi efanayo, isizinda, kanye ne-port). Kuyishintsho lomdlalo ekudaleni izinhlelo zokusebenza zewebhu ezisebenzayo ezizwakala njengolwazi olulodwa, oluhlangene kunokuba yiqoqo lamakhasi ahlukanisiwe.

Indlela i-Broadcast Channel API Esebenza Ngayo Ngempela

Umbhalo oseduze wonjiniyela othayipha ikhodi yeJavaScript endaweni yokusebenza emnyama, emele ukusetshenziswa kokuvumelanisa kwesimo.

Empeleni, le API ijikeleza umqondo we- isiteshi esiqanjwe igama. Cabanga nje ngemvamisa yomsakazo; noma yiliphi ifasitela noma isisebenzi esilalela imvamisa efanayo singakuzwa lokho wonke umuntu akusakazayo. Uma usungula i- BroadcastChannel into enegama elithile, empeleni ungumuntu ukubhalisela leso siteshiUma isiteshi singakabi khona, isiphequluli siyasidala ngokushesha.

Ukuthumela idatha kulula kakhulu. Ngokushayela ucingo postMessage() indlela, ungathumela umlayezo kuwo wonke umongo olalele njengamanje. Enye yezingxenye ezipholile kakhulu ukuthi isebenzisa i-algorithm ye-clone ehlelekileLokhu kusho ukuthi awunamathele ezintanjeni kuphela; ungathumela izinto eziyinkimbinkimbi, ama-array, iMephu, Isethi, noma ngisho nama-Blobs ngaphandle kokusebenzisa ngesandla JSON.stringify() or JSON.parse(), okusindisa isikhathi esiningi sokucubungula.

Izindlela Ezibalulekile Nokuphathwa Kwemicimbi

Isikhungo somyalo sobuchwepheshe obuphezulu esinezikrini eziningi, esisebenza njengesifaniso sekhono le-Broadcast Channel API lokuvumelanisa izimo zokuphequlula eziningi.

Ukuze izinto zihambe, uqala ngokudala isiteshi: const myChannel = new BroadcastChannel('app_sync');Ukuze uthole idatha engenayo, usetha i- onmessage umphathi wemicimbi noma sebenzisa addEventListener('message', ...)Uma umlayezo ufika, into yomcimbi iqukethe i- data impahla ephethe ulwazi oludluliselwe.

  • postMessage(data): Ithumela into ecacisiwe kubo bonke abanye ababhalisile abaxhunyiwe.
  • close(): Lesi yisinyathelo esibalulekile sokuphathwa kwememori. Ukubiza le ndlela inqamula into kusuka esiteshini, okuvumela umqoqi kadoti wesiphequluli ukuthi ahlanze izinsiza.
  • name: Impahla yokufunda kuphela ekuvumela ukuthi uqinisekise ukuthi into ixhunywe kusiphi isiteshi okwamanje.

Kubalulekile ukuqaphela ukuthi umsakazi akawutholi umyalezo wakhe . Uma uthumela umlayezo ovela ku-Tab A, i-Tab B kanye ne-Tab C kuphela ezizoqala imicimbi yemiyalezo yazo. Lokhu kuwukunqoba okukhulu ngoba kuvimbela izihibe ezingenamkhawulo ezivame ukuhlupha abathuthukisi lapho besebenza ne-WebSockets noma ezinye izindlela zokubuyela emuva.

Ukuqhathanisa Isiteshi Sokusakaza namanye ama-API

Amadivayisi amabili edijithali abonisa izikrini ezivumelanisiwe, ezifanekisela ukuvumelanisa isimo sesikhathi sangempela okufinyelelwe nge-Broadcast Channel API.

Ungase ucabange, “Kungani ungasebenzisi nje window.postMessage()"Ngesikhathi postMessage() kunamandla, kudinga ireferensi eqondile efasiteleni eliqondiwe (njenge-popup noma i-iframe). I-Broadcast Channel API iyisistimu 'yomlilo bese ukhohlwa'; awudingi ukwazi ukuthi ubani olalele, okwenza lokho ziguquguquka kakhulu ezimweni zamathebhu amaningi.

Uma kuqhathaniswa ne -SharedWorkers , i-Broadcast Channel ilula kakhulu. Ama-SharedWorkers alungele ukuphatha izimo ezihlanganyelwe eziyinkimbinkimbi noma uxhumano olulodwa lwe-WebSocket lwamathebhu amaningi, kodwa ngezaziso ezilula noma ukuvumelanisa isimo , i-Broadcast Channel iyindlela okufanele uhambe ngayo. Ngokufanayo, ngenkathi i -MessageChannel API yenzelwe ukuxhumana komuntu nomuntu ngamachweba, i-Broadcast Channel yakhelwe ukusakaza komuntu nomuntu.

Amacala Okusetshenziswa Kwangempela Nokusetshenziswa Okusebenzayo

Kunezindlela eziningi zokusebenzisa lokhu. Isibonelo esivamile ukuvumelanisa izimo zokuqinisekisa . Uma umsebenzisi eshaya 'Phuma' kuthebhu eyodwa, ungasakaza umlayezo othi 'auth_logout', okukhuthaza wonke amanye amathebhu avulekile ukuthi aqondise kabusha ekhasini lokungena ngokushesha.

Ezinye izinhlelo zokusebenza ezihlakaniphile zifaka:

  • Ukuthenga amathilethi: Buyekeza inani lezinto eziku-header kuwo wonke amathebhu ngesikhathi umsebenzisi engeza umkhiqizo.
  • Okuncamelayo KomsebenzisiUma umsebenzisi eshintshela ku-'Modi Emnyama' efasiteleni elilodwa, ungakwazi qalisa ushintsho lwetimu kuyo yonke iseshini ngokushesha.
  • Amathuluzi Okusebenzisana: Ukuvumelanisa izikhundla zesikhombisi noma izinguquko zombhalo kumhleli wedokhumenti okwabelwana ngawo we- isipiliyoni esibukhoma esingenamthungo.
  • Ukuxhumanisa Abasebenzi Benkonzo: Ukuyala isisebenzi sesevisi ukuthi sisule i-cache yaso noma sibuyekeze izinsiza ngaphandle kwesidingo sokuzulazula kuwo wonke amaklayenti asebenzayo ngesandla usebenzisa self.clients.matchAll().

Ukulinganiselwa Nokuhambisana

Naphezu kokusebenza kwayo, kunezindlela ezimbalwa zokuvikela okufanele uzikhumbule. Okokuqala, ingumsuka ofanayo kuphela . Awukwazi ukusebenzisa lokhu ukukhuluma nesizinda esihlukile ngezizathu zokuphepha. Okwesibili, akukho mlando wemiyalezo ; uma ithebhu ijoyina isiteshi sekwephuzile, ngeke ibone imiyalezo ethunyelwe ngaphambi kokuba ixhunywe. Okokugcina, ayinikezi ziqinisekiso zokulethwa , ngakho-ke uma udinga isiqinisekiso sokuthi umlayezo utholiwe, kuzodingeka wakhe iphrothokholi yakho yokuvuma.

Ngokuphathelene nokusekelwa kwesiphequluli, le API manje isiyingxenye ye- Widely Available baseline , okusho ukuthi isekelwa yizo zonke izinguqulo zesimanje ze-Chrome, Firefox, kanye ne-Safari. Uma udinga ukusekela iziphequluli zasendulo, kuzodingeka ubheke ama-polyfill, yize kumaphrojekthi amaningi esimanje, isilungele ukusetshenziswa ekukhiqizweni.

Ngokusebenzisa le API, abathuthukisi bangasuka ekubambeni isitoreji okungasebenzi kahle futhi bakhe ulwazi lomsebenzisi oluvumelaniswe kakhulu . Kwenza kube lula ukwakheka kwezinhlelo zokusebenza ezinamafasitela amaningi ngokunikeza indlela yendabuko, ephephile, nesebenzayo yokusingatha ukuxhumana kwesikhathi sangempela ngaphakathi kwesiphequluli seklayenti.

Okuthunyelwe okuhlobene: