A user account is required in order to edit this wiki, but we've had to disable public user registrations due to spam.
To request an account, ask an autoconfirmed user on Chat (such as one of these permanent autoconfirmed members).
RemoteDocumentMessaging: Difference between revisions
No edit summary |
|||
(3 intermediate revisions by one other user not shown) | |||
Line 11: | Line 11: | ||
<pre> | <pre> | ||
[Constructor(DOMString name)] | [Constructor(DOMString name)] | ||
interface BroadcastChannel { | interface BroadcastChannel : EventTarget { | ||
void postMessage(any message); | void postMessage(any message); | ||
void close(); | void close(); | ||
attribute EventHandler onmessage; | |||
}; | }; | ||
</pre> | </pre> | ||
Line 20: | Line 22: | ||
<pre> | <pre> | ||
var channel = new BroadcastChannel(" | // The channel name, "deep-thoughts", is scoped to the current origin. | ||
var channel = new BroadcastChannel("deep-thoughts"); | |||
channel.addEventListener("message", function(message) { | channel.addEventListener("message", function(message) { | ||
Line 30: | Line 33: | ||
channel.postMessage("I think, therefore I am."); | channel.postMessage("I think, therefore I am."); | ||
</pre> | </pre> | ||
==Notes== | |||
You can already accomplish this through localStorage as that broadcasts storage events: http://bens.me.uk/2013/localstorage-inter-window-messaging Something that does not involve synchronous IO would probably be better though. | |||
[[Category:Proposals]] | [[Category:Proposals]] |
Latest revision as of 03:20, 23 June 2013
Overview
This document describes a proposal for discovering and communicating with "remote" documents. In particular, this proposal lets a web page communicate with another document even if the web page does not have a direct script connection to that document.
Use Cases
The user opens the same word processing document hosted by a document editing web site in two different browser windows. The document editing web site wants to ensure that edits in one window a reflected in the other window without needing to round-trip through the server (e.g., because the user is offline). Unfortunately, the documents are in different units of related browsing contexts, which means the two documents cannot form a direct script connection. Using remote document messaging, the two documents can discover each other and update each other about edits performed by the user.
Specification
[Constructor(DOMString name)] interface BroadcastChannel : EventTarget { void postMessage(any message); void close(); attribute EventHandler onmessage; };
Examples
// The channel name, "deep-thoughts", is scoped to the current origin. var channel = new BroadcastChannel("deep-thoughts"); channel.addEventListener("message", function(message) { // Do something interesting with |message|, which is a MessageEvent. }, false); // Send a message to each other BroadcastChannel instance with the same channel // name in the same origin. channel.postMessage("I think, therefore I am.");
Notes
You can already accomplish this through localStorage as that broadcasts storage events: http://bens.me.uk/2013/localstorage-inter-window-messaging Something that does not involve synchronous IO would probably be better though.