2

我们有一个大型 xslt 可以呈现整个商店区域,包括产品、制造商,并在此基础上根据价格和类别进行过滤。我将 sitecore 用作 CMS,但我遇到了缓存问题。我有大约 9000 个项目,有些页面需要 20 秒才能呈现。将xslt分成更小的部分会更好吗?它会提高速度吗?

我认为 sitecore 使用的 xslt 引擎称为 Nexus。

更新:

我认为我们需要优化 xslt。尽管站点核心分析器显示大约有 9k 个项目,但我们实际上在进行各种检查时遍历了大约 250k 个项目。

4

5 回答 5

4

通过应用其他更改而不是拆分 XSLT 文件,您可能会获得更好的性能。如果没有看到 XSLT,很难发现瓶颈,但您会在此处找到 XSLT 性能的一些最佳实践:

http://www.dpawson.co.uk/xsl/sect4/N9883.html#d15756e150

此外,在这种情况下使用 XSLT 分析器可能会很有帮助。

一些性能技巧还取决于您使用的引擎,因此一些附加信息在这里也可能有用。

如果您可以发布您的 XSLT 代码,我可能会帮助您找到可能的瓶颈。

于 2008-12-10T11:46:31.713 回答
1

听起来问题在于 sitecore 而不是 XSLT(我已经对 10 行的 K 行进行了更快的转换),但我建议通常拆分以启用代码重用。

于 2008-12-10T11:44:23.977 回答
1

如果您使用 Sitecore 缓存,则将一个巨大的渲染分成较小的渲染会有所帮助。拥有多个渲染将允许对每个渲染应用单独的缓存设置。

于 2008-12-10T15:38:51.523 回答
0

这里有两个不同的问题:

  • 分离 XSLT 文件以获得更好的可读性、可维护性和代码重用
  • 提高 XSLT 翻译的性能

第一个应该作为最佳实践完成,后者应该处理您获得的延长渲染时间

于 2008-12-10T11:50:55.603 回答
0

绝对使用有意义的小型 XSLT。那只是很好的做法,不会影响性能。

于 2009-01-11T19:33:50.343 回答