W3C home > Mailing lists > Public > www-svg@w3.org > November 2004

FW: LC Comment - Script & Progressive Rendering / Multiple Pages

From: Andrew Sledd <Andrew.Sledd@zoomon.com>
Date: Tue, 30 Nov 2004 14:50:31 +0100
Message-ID: <586AE9F507AF5E4AA45364333D9E2FA201032706@sesthsrv02.zoomon.local>
To: "W3C SVG public list (E-mail)" <www-svg@w3.org>

This post didn't get registered so I resubmit it now.

-----Original Message-----
From: Andrew Sledd 
Sent: Wednesday, November 24, 2004 12:03 PM
To: 'www-svg@w3.org'
Subject: LC Comment - Script & Progressive Rendering / Multiple Pages

Dear SVG WG,

How is scripting to be handled when combined with Progressive Rendering and or Multiple Page?

When is script to be executed?

>From the Specification:
"Script execution happens only at load time. Removing, inserting or altering script elements once the document has been loaded has no effect. "

Additionally script is required to be in the global scope.

Are we to infer that this means the whole document must be loaded before the script is executed? Thus usefulness of combining script and progressive rendering and/or multiple pages will be limited.

We would propose that the 1.2 specification make an adjustment to script handling which would enable script to be executed in a more controlled manner during a progressive rendering and/or multipage rendering. We propose that script elements when in a time container with timelineBegin="onStart" should be interpreted/executed upon load of the script element. That would enable content providers control, while requiring them to take special consideration when setting timelineBegin="onStart". For example - on a UA which progressively downloads and renders at each startElement and endElement
  <svg timelineBegin="onStart">
    <script> document.getElementById("foo").setTrait("visibility", "visible");</script>
    <rect id="foo" visibility="hidden">

Would not render the rectangle, while

  <svg timelineBegin="onStart">
    <rect id="foo" visibility="hidden">
    <script>document.getElementById("foo").setTrait("visibility", "visible");</script>

would render the rectangle. And

<svg timelineBegin="onStart">
    <rect id="foo" visibility="hidden">
    <script>document.getElementById("foo").setTrait("visibility", "visible");</script>
    <cirlce ...>

might well render the rect, then render the rect and the cicle in the next rendering pass.

The use of externalresourcesRequired="true" as described in progressive rendering (Section 8), and/or the timelineBegin="onLoad" for a page enable the content provider to ensure that the script has been run before any rending of a sub-tree (i.e. group) or time container is performed.

<svg xmlns="http://www.w3.org/2000/svg" version="1.2" streamedContents="true" timelineBegin="onStart">
     <!-- graphics here are always visible -->

      <page timelineBegin="onLoad">
        <rect id="foo1" fill="red" visibility="hidden">

Furthermore, allowing script as a child of pageSet (or alternatively allowing it to be included between the end tags of the pageSet and the svg), would enable scripting which works on a series of pages or the complete document, e.g. the script could restart the page sequence.

Andrew Sledd
ZOOMON Mobile Solutions
Received on Tuesday, 30 November 2004 13:51:05 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 8 March 2017 09:47:01 UTC