【发布时间】:2013-12-18 03:11:59
【问题描述】:
我正在调查我们在使用 Web 表单时遇到的性能问题,并认为我最好在此征求一些意见。
此页面在服务器端加载时会检索 ID 值列表,然后使用这些 ID 值播种在加载事件结束时添加的 javascript 块。然后,javascript 循环遍历这些 ID,并为每个此类 ID 添加一个 img 元素,使用该 ID 设置 src 属性。
以前,由于只能显示找到的前 20 个此类图像的限制,这可以正常工作。企业现在希望消除这个限制,这意味着我们可以合理地看到数百个这样的图像,并且在测试时,页面需要花费非常长的时间来呈现所有这些 img 元素。
JS 的简化伪代码:
for (var i = 0; i < ids.length; i++) {
var img = "<img src='some\path\'" + ids[i];
//add img to document
}
就个人而言,我建议我们暂时保留限制,因为我们在此版本的开发周期中已经很晚了,但我想看看我们可以做些什么来加快速度.所有选项都在桌面上,我们只需要显示所有图像。是否有替代策略来处理这种情况?
如果有任何其他细节对您有帮助,请告诉我。
编辑
我忽略了需要加载所有这些图像的原因是该页面用于打印所有这些图像,因此分页不会真正起作用。我同意这不是一个很好的设计选择,但用户和/或企业主想要一个显示所有这些图像的打印友好页面。具有相同功能的“正常”页面确实使用了分页功能,并且表现出色。
EDIT 2
现在我回到办公室,我可以提供更多细节:
- img 元素使用 aspx 页面作为它们的 src,实际的图像内容是从另一个页面中的数据库中检索的,并使用图像/png 的内容类型作为响应流回,所以这进一步减慢了速度,但鉴于当前的架构,这是必要的,因为我们只将这些图像存储在数据库中
- 这些图片的大小可能会有所不同,但一张图片需要几 MB 的大小并不少见
这些回复证实了我的想法:这不是一个好主意
【问题讨论】:
-
试试 jQuery.lazyload 或 jQuery.scrollLoading。
-
javascript 速度很快,但加载数百张图片需要很长时间。图像的大小是多少?文件类型?
-
您可以在 for 循环中添加简单的超时,以免一次全部加载...
-
您想按顺序加载它们吗?
-
数百兆的图像?绝对尝试说服企业重新考虑方法。我不确定打印不会有问题
标签: javascript jquery html asp.net