报表查看器版本:14
我有一个报告 View ,它显示了我团队所有报告的列表,这些报告是这样分组的:
ReportGroup1
Report1
Report2
Report3
ReportGroup2
Report4
Report5
Report6
...
当我在浏览器 (Chrome 60) 中运行此报告时,速度非常慢,需要超过 5 分钟才能运行。此报告中返回了将近 1000 行,包括每个报告名称旁边的几个图标以及在新窗口中指向每个报告的链接。尽管浏览器速度很慢,但 SQL 查询是即时的,并且使用 Visual Studio 中的预览功能也可以快速呈现报告。
我使用开发人员工具监控了性能,似乎新添加的 HTML5 造成了瓶颈,特别是 中的
。如果我的理解是正确的,它会根据父级的高度动态调整每一行的大小,这需要花费大量时间处理约 1000 个对象。Resize100HeightElements()
和 Resize100WidthElements()
函数Html5Renderer.js
解决方法是将 InteractiveSize
设置为较小的尺寸(例如 8.5 in
),这会限制给定页面上返回的行数(我们将其设置为0
,将所有结果打印在一页上)。不过,我们不希望将其分解为页面。
有谁知道加速长页面的替代方法或提高 HTML5 渲染器性能的方法?在不久的将来升级到 SSRS 2016,这是值得的。提前致谢。
编辑:当报告不包含任何图像时,性能得到显着改善,即使报告中的图像大小属性设置为裁剪而不是适合比例。我们如何才能在不被 HTML5 渲染器拖累的情况下保留我们的图像?
最佳答案
我找到了一个足以满足我们需求的解决方案。
在Image Properties 中将图像大小设置为Original Size 是我发现在呈现大页面时不会导致显着减速的唯一选项。我必须对所有可见 图像执行此操作;图像大小对隐藏图像没有影响。当我使用 Chrome 开发者工具重新评估性能时,我发现渲染时间和脚本执行时间都显着减少了。报告现在在 < 5 秒内运行,而之前接近 5 分钟。
根据 this,我怀疑图像大小之前已设置为 Clip,因为 SSRS 没有像文本框中的文本那样为单元格中的图像提供任何类型的对齐选项。页。我可以通过在每个包含图像的单元格中插入一个矩形,然后将每个图像移动到其单元格中的矩形内来解决这个问题。然后,我分别调整了填充属性,直到每个图像都居中。
关于javascript - SSRS ReportViewer 使用 HTML5 渲染器渲染报告的速度很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45444387/