Re: [xsl] speed difference between IE and Firefox during transform?

Subject: Re: [xsl] speed difference between IE and Firefox during transform?
From: "Joris Gillis" <roac@xxxxxxxxxx>
Date: Tue, 01 Mar 2005 20:06:15 +0100
Tempore 19:42:15, die 03/01/2005 AD, hinc in xsl-list@xxxxxxxxxxxxxxxxxxxxxx scripsit Sean Whalen <seanwhalen@xxxxxxxxxxx>:

The stylesheet, at the point of the slowness, has 2 node-set variables, and it is building a 3rd variable by selecting all the members of the first set that have an attribute that is found in some member of the second set. That block of code looks a little like this:

<xsl:variable name = "revealing" select = "$field[
@isBomb != -1 and @isRevealed = 0 and
((concat(@h -1 ,'/', @v ) = $zeros/@sqID) or (concat(@h +1 ,'/', @v ) = $zeros/@sqID)
)] " />

Hi,


Maybe you could try using keys, they *might* speed it up.

The predicate could then be reduced to this:
<xsl:variable name = "revealing" select = "$field[
       @isBomb != -1  and @isRevealed = 0 and
     $zeros/@sqID=key('zero',concat(@h ,'/', @v ))/@sqID] " />

while the key would be defined in a way like this:

<xsl:key name="zero" match="square" use="concat(@h -1 ,'/', @v )"/>
<xsl:key name="zero" match="square" use="concat(@h +1 ,'/', @v )"/>
<xsl:key name="zero" match="square" use="concat(@h -1 ,'/', @v -1)"/>
...


regards, -- Joris Gillis (http://www.ticalc.org/cgi-bin/acct-view.cgi?userid=38041) "Et ipsa scientia potestas est" - Francis Bacon , Meditationes sacrae

Current Thread