Re: [webcomponents]: Making <link rel="components"> produce DocumentFragments

On Thu, Mar 14, 2013 at 5:14 AM, Dimitri Glazkov <dglazkov@google.com>wrote:

>
>
>
> On Tue, Mar 12, 2013 at 10:20 PM, Dominic Cooney <dominicc@google.com>wrote:
>
>> On Tue, Mar 12, 2013 at 8:13 AM, Dimitri Glazkov <dglazkov@google.com>wrote:
>>
>>> Hi folks!
>>>
>>> Just had a quick discussion with Elliott and he suggested that instead
>>> of building full-blown Documents, the <link rel="components"> just make
>>> DocumentFragments, just like <template> does.
>>>
>>
>> I am confused by what you are proposing here.
>>
>> Templates "produce" document fragments in the sense that the
>> HTMLTemplateElement's content attribute is a DocumentFragment.
>>
>> On the other hand, templates use full-blown documents in the sense that
>> "the template contents owner is a document which does not have a browsing
>> context." <
>> https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/templates/index.html#definitions
>> >
>>
>>
>>> Looking at
>>> http://www.whatwg.org/specs/web-apps/current-work/multipage/dom.html#the-document-object and
>>> the bunch of APIs that will never be useful on a document without a
>>> browsing context, I think it's a pretty good idea. It should make also
>>> components more lightweight.
>>>
>>
>> It you are proposing to make the Component interface's content attribute
>> a DocumentFragment, I think that is OK. It does not make the components any
>> lighter, because component.content.ownerDocument will inevitably point to
>> that other document.
>>
>> Could you provide a more specific proposal? I don't understand what
>> you're proposing here.
>>
>
> Just like in HTML templates, you don't have to have a distinct document
> for each component. They could share the same document. In fact, it might
> be nice for both templates and components to all share the same document.
>

Now I understand.

The concerns about resource resolution are tricky ones and having a
separate document sounds straighforward.

What is the plan for inline scripts in the linked file? Is it possible for
components to have a top-level <script> which does some setup? If so,
running script in a document fragment seems a bit weird.

I think this in part depends on whether you think web apps will crunch
their components into few files or not because the benefit of a shared
document is limited if there are fewer components. There are reasons for
developers to crunch components (minimize latency as with CSS spriting,
script concatenating, and stylesheet merging) or not (it is an extra step;
lazy loading wants multiple files anyway; SPDY will ameliorate the latency
problem anyway; loading components from separate third-party sites).

Dominic

-- 
Email SLA <http://goto.google.com/dc-email-sla> •
Google+<https://plus.sandbox.google.com/111762620242974506845/posts>

Received on Thursday, 14 March 2013 03:08:58 UTC