[whatwg] Global Script proposal.
Michael Nordman
michaeln at google.com
Wed Aug 19 13:50:45 PDT 2009
On Wed, Aug 19, 2009 at 1:34 PM, Patrick Mueller <pmuellr at muellerware.org>wrote:
> Dmitry Titov wrote:
>
> The return value from a constructor is the Global Script's "global scope
>> object". It can be used to directly access functions and variables defined
>> in global scope of the Global Script. While this global scope does not
>> have
>> 'window' or 'document' and does not have visual page associated with it,
>> the
>> local storage, database, timers and XHR are exposed to it, and it can
>> build
>> up DOM for the connected pages using their 'document' object.
>>
>
> This turns out to be fairly similar to the serverJS concept of "modules".
> I could see how you might want to use it this way, to get script code
> loaded into it's own sandbox, and allow the client of the "module" to name
> the object as they see fit.
>
> This would require the use of a name when you create it, so as to allow
> multiple to be created, and to allow other sharers to find those objects.
>
> This also allows folks to programmatically load JS code without having to
> resort to XHR/eval or adding <script> nodes to the DOM. Big plus, because
> those scripts will then be associated with an honest-to-gods name, which
> will show up in debuggers. And is obviously cleaner than the other
> techniques.
>
>
> The list of
>> interfaces exposed in the global scope of the Global Script is similar to
>> that of Shared Worker, except message-passing interface. It could also
>> include events fired when a page connects/disconnects to it and before it
>> is
>> terminated.
>>
>
> Can I create additional GlobalScript's from within an existing
> GlobalScript?
>
That's a good question...
(just having fun... oh the tangled web we weave;)
I'm not sure any has thought thru the implications of that, but it's an
interesting idea.
* An obvious complication is life-cycle management. If GlobalScriptA
attaches to GlobalScriptB, when no 'pages' are attached to either, they
should be eligible for destruction.
* Also about tangled webs... what if A attaches to B, and B attaches to A
> The load() method is very similar to the worker loadScript() (or whatever)
> function. Perhaps we should combine them into one API, that allows sync or
> async in a worker, but only allows async in a GlobalScript. Or at least
> advises against use of sync.
>
>
>
> --
> Patrick Mueller - http://muellerware.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.whatwg.org/pipermail/whatwg-whatwg.org/attachments/20090819/7272c2b4/attachment-0002.htm>
More information about the whatwg
mailing list