Javascript XSL模板使得加载速度非常慢

Javascript XSL模板使得加载速度非常慢,javascript,xml,performance,xslt,xpath,Javascript,Xml,Performance,Xslt,Xpath,您好,下面的代码使我的页面加载速度非常慢。你能帮忙吗 <xsl:template match="Category" mode="CategorySelectorScript"> <xsl:variable name="ThisCategoryID" select="CategoryID"/> <xsl:variable name="HasChildren"><xsl:choose>

您好,下面的代码使我的页面加载速度非常慢。你能帮忙吗

 <xsl:template match="Category" mode="CategorySelectorScript">
            <xsl:variable name="ThisCategoryID" select="CategoryID"/>
            <xsl:variable name="HasChildren"><xsl:choose>
                <xsl:when test="../Category[ParentCategoryID=$ThisCategoryID]">
                    true
                </xsl:when>
                <xsl:otherwise>
                    false
                </xsl:otherwise></xsl:choose>
            </xsl:variable>
            arrCategory=new Array(<xsl:value-of select="CategoryID"/>, <xsl:value-of select="ParentCategoryID"/>, '<xsl:value-of select="Name"/>', <xsl:value-of select="$HasChildren"/>);
            arrCategories.push(arrCategory);
        </xsl:template>
PS:如果还需要什么,请评论,我将与您分享这些要求


谢谢

您还没有显示源XML

如果类别元素的数量很大,并且它们在文档中都处于同一级别,那么您应该通过定义一个键来获得改进:

<xsl:key name="CategoryByParentCategory" match="Category"
     use="ParentCategoryID"/>

您尚未显示源XML

如果类别元素的数量很大,并且它们在文档中都处于同一级别,那么您应该通过定义一个键来获得改进:

<xsl:key name="CategoryByParentCategory" match="Category"
     use="ParentCategoryID"/>

非常感谢你,先生。它只是通过在模板上方添加xsl:key而神奇地工作。我很好奇在嵌套元素上使用key是不安全的限制。。。我以前从未见过,也找不到关于它的更多信息。您是否有机会提供指向文档或更多详细信息的链接?谢谢。所谓“不安全”,我的意思是在嵌套类别元素的情况下,使用key()的替换代码将给出与原始代码不同的结果,因此我不能保证在这种情况下替换是正确的。在嵌套元素上使用键没有一般问题。非常感谢您,先生。它只是通过在模板上方添加xsl:key而神奇地工作。我很好奇在嵌套元素上使用key是不安全的限制。。。我以前从未见过,也找不到关于它的更多信息。您是否有机会提供指向文档或更多详细信息的链接?谢谢。所谓“不安全”,我的意思是在嵌套类别元素的情况下,使用key()的替换代码将给出与原始代码不同的结果,因此我不能保证在这种情况下替换是正确的。在嵌套元素上使用键没有一般问题。
<xsl:variable name="HasChildren"
 select="boolean(key('CategoryByParentCategory', $ThisCategoryID))"/>