[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

IE / FF diferent performance doing XSLT

Subject: IE / FF diferent performance doing XSLT
From: António Mota <amsmota@xxxxxxxxx>
Date: Thu, 8 Sep 2005 22:00:39 +0100
ie xsl
Hello:

I have this XSLT that takes about 2 secs on IE but on FF takes 20
secs!!! and others that take up to 5 times more in FF than IE.

Digging a little i think the cause for the 2/20 diference lies on a
recursive template my xslt is calling.

Anyone had this experince before? Anybody has some advice or help?

Heres some code, in the context of a identity transform:

                        <xsl:when test="SOME TEST">
                               <xsl:call-template name="replace"/>
                        </xsl:when>
                        <xsl:otherwise>
                                <xsl:copy>
                                        <xsl:apply-templates select="*"/>
                                </xsl:copy>
                        </xsl:otherwise>

and later on,

       <xsl:template match="Menu" mode="replace" name="replace">
                <xsl:choose>
                        <xsl:when test=" Type='REP'  and Visual='NODE' ">
                                <xsl:variable name="xmldoc"
select="I'M GETTING SOME DATA FROM ANOTHER DOC"/>
                                <xsl:if test="count($xmldoc|current())!=1">
                                        <xsl:apply-templates
select="$xmldoc" mode="replace"/>
                                </xsl:if>
                                <xsl:if test="count($xmldoc|current())=1">
                                        <xsl:copy>
                                                <Caption>WARNING:
Infinite loop on <xsl:value-of select="Name"/></Caption>
                                                <xsl:apply-templates
select="@*|node()[not(self::Caption)]"/>
                                        </xsl:copy>
                                </xsl:if>
                        </xsl:when>
                        <xsl:otherwise>
                                <xsl:copy>
                                        <xsl:apply-templates select="*"/>
                                </xsl:copy>
                        </xsl:otherwise>
                </xsl:choose>
        </xsl:template>

so in english, when i found a specific node in my tree, and it's of
Type=REP, i go look at another document for nodes based on some of
it's data, and for the nodes returned, if they are REP's i want to
repeat the process, and so on and so on...

I have a escape code for situations where the returned code is itself,
so it never goes on a loop.

I've checked in the case of the 2/20 diference situation, i only
recurse once, giving a result from document() of 9 nodes, none of wich
is a REP, so it won't recurse again.

And i know it's because of recursion because if i change the "replace"
mode to a "normal" mode (that simply copies the nodes) both browsers
take aprox. the same time to do it.


I'm completly lost in here, someone can help?

Thanks a lot.


P.S. Someone knows where are the <xsl:message>'s go in IE?

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.