我们有一个大型 xslt 可以呈现整个商店区域,包括产品、制造商,并在此基础上根据价格和类别进行过滤。我将 sitecore 用作 CMS,但我遇到了缓存问题。我有大约 9000 个项目,有些页面需要 20 秒才能呈现。将xslt分成更小的部分会更好吗?它会提高速度吗?
我认为 sitecore 使用的 xslt 引擎称为 Nexus。
更新:
我认为我们需要优化 xslt。尽管站点核心分析器显示大约有 9k 个项目,但我们实际上在进行各种检查时遍历了大约 250k 个项目。
通过应用其他更改而不是拆分 XSLT 文件,您可能会获得更好的性能。如果没有看到 XSLT,很难发现瓶颈,但您会在此处找到 XSLT 性能的一些最佳实践:
http://www.dpawson.co.uk/xsl/sect4/N9883.html#d15756e150
此外,在这种情况下使用 XSLT 分析器可能会很有帮助。
一些性能技巧还取决于您使用的引擎,因此一些附加信息在这里也可能有用。
如果您可以发布您的 XSLT 代码,我可能会帮助您找到可能的瓶颈。
听起来问题在于 sitecore 而不是 XSLT(我已经对 10 行的 K 行进行了更快的转换),但我建议通常拆分以启用代码重用。
如果您使用 Sitecore 缓存,则将一个巨大的渲染分成较小的渲染会有所帮助。拥有多个渲染将允许对每个渲染应用单独的缓存设置。
这里有两个不同的问题:
第一个应该作为最佳实践完成,后者应该处理您获得的延长渲染时间
绝对使用有意义的小型 XSLT。那只是很好的做法,不会影响性能。