- From: LiLi (Z) <Li.NJ.Li@huawei.com>
- Date: Tue, 25 Feb 2014 15:55:28 +0000
- To: "public-webapps@w3.org" <public-webapps@w3.org>
- Message-ID: <B60F8F444AAC9C49A9EF0D12D05E094223DEF669@dfweml701-chm.china.huawei.com>
When testing the SharedWorker in Chrome, we found that a ShareWorker does not persist during page transitions. If page A creates a SharedWorker myworker: var worker1 = new SharedWorker('shared.js', myworker); When page A transitions to page B (same origin as A) who creates the same myworker: var worker2 = new SharedWorker('Websocket.js', myworker); the worker1 is released and does not persist to page B. It seems the only way to share myworker between the pages is for pages A and B to be open at the same time. This causes several problems for applications, for example for persistent WebSocket, as discussed in [1]-[5]. To address this problem, we propose to add an optional 4th parameter to the constructor of SharedWorker to indicate the target pages (of the same origin) it should persist to: var worker1 = new SharedWorker('shared.js', myworker, [URI_to_page_B]); There is no change to page B code. When page A transitions to page B, the browser will delay release of worker1 until page B JavaScript context is initialized, i.e. worker2 is created by page B. When page B transits back to page A, the worker2 will persist similarly as worker1. To simplify the target page parameter, we can also use URI prefixes to specify a range of target pages, or [*] to indicate all pages, of the same origin. This approach is fully backward compatible and provides a safe and simple extension to persist ShareWorker without opening multiple pages. Thanks. Li Li Huawei [1] http://stackoverflow.com/questions/9578680/reusing-websockets-between-pages [2] http://stackoverflow.com/questions/10886910/how-to-maintain-a-websockets-connection-between-pages [3] http://stackoverflow.com/questions/9554896/sharing-websocket-across-browser-tabs [4] http://stackoverflow.com/questions/9336205/using-websockets-for-live-feeds-across-multiple-web-pages [5] http://stackoverflow.com/questions/9336774/do-shared-web-workers-persist-across-a-single-page-reload-link-navigation/9337749#comment11795892_9337749<http://stackoverflow.com/questions/9336774/do-shared-web-workers-persist-across-a-single-page-reload-link-navigation/9337749>
Received on Tuesday, 25 February 2014 15:56:01 UTC