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))"/>