我正在开发一个页面,该页面有多个服务器端下拉列表,其中一个包含 500 个项目。根据所选内容,我在回发期间显示/隐藏其他页面元素(我仅在初始加载时绑定(bind)数据)。客户经常打开此页面,我不希望他们每次打开时都将 500 个项目拉下来。目前,页面渲染大约需要 2 到 5 秒。我已开始迁移到该页面的完整 javascript/jquery 版本,但希望征求您的意见,因为我不喜欢新版本。
有没有办法让这个页面更快并限制每次下拉全部 500 个项目?
注意:有些用户希望直接输入 dentry 手术代码。其他人需要进行查找。
最佳答案
我们开发的系统可以从下拉列表中选择用户名,然后用户信息显示在下面。大约有 600 个用户,利益相关者的要求之一是必须在下拉列表中选择用户 - 利益相关者认为非技术用户更好地“理解”如何使用下拉列表。
我们加载下拉列表的性能非常好。我们执行以下操作:
- 尽快加载页面,但不要加载下拉列表
- 页面加载时,显示加载指示器,然后立即获取下拉列表的数据
- 我们通过使用 jQuery 调用 Web 服务来获取数据,该服务仅返回用户名和 ID,并且数据以 JSON 格式返回
- 请求数据的查询会缓存在服务器上以供将来请求
- 生成的 JSON 对象用于填充下拉列表
- 隐藏加载指示器即可完成
上述过程发生得非常快,并且带来了非常愉快的用户体验。
如果有的话,请非常努力地执行以下操作:
- 即使您使用的是更新面板,也要避免回发 - 如果您的 View 状态较大,这会降低性能
- 仅返回填充下拉列表所需的绝对最少数据
- 不要访问任何非立即需要的数据。尽快加载页面,然后在用户阅读页面时获取剩余信息
向页面添加大量数据时,毫秒至关重要。您可以采取任何措施来减少对数据的调用(以及随后将该数据添加到页面中),这将极大地改善用户体验。
关于c# - 如何加速具有大量数据的服务器绑定(bind)控件的网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5157604/