Skip to content

Simple BroadcastChannel polyfill for browsers with MessageChannel API onboard

License

Notifications You must be signed in to change notification settings

JSmith01/broadcastchannel-polyfill

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BroadcastChannel polyfill

This is a polyfill for BroadcastChannel.

It is just a published copy of Joshua Bell's gist (since broadcast-channel polyfill won't work for our project).

It requires Message Channel support, so should work in:

  • Chrome 4+
  • Safari 5+
  • Opera 11.5+

Does not work in:

  • Firefox 37- (neither BroadcastChannel nor MessageChannel)
  • IE (??)

Caveats

  • The real API should let you transmit anything which can copied by the structured cloning algorithm. This polyfill only copies things using JSON.stringify()/JSON.parse() so it is much more limited.
  • This polyfill uses DOM Storage (localStorage) and storage events. DOM Storage is a synchronous API and so may cause performance issues in pages. In addition, it is not exposed to Workers. Therefore, the polyfill will not function in Workers.
  • Unique storage keys are used for each message, and are cleaned up a few hundred milliseconds after transmission. This is a total hack and may result in the messages failing to be received (if the write and delete are coalesced) or persisting (if the cleanup is prevented by page close).

About

Simple BroadcastChannel polyfill for browsers with MessageChannel API onboard

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published