c# - 如何加速具有大量数据的服务器绑定(bind)控件的网页

标签 c# javascript jquery asp.net performance

我正在开发一个页面,该页面有多个服务器端下拉列表,其中一个包含 500 个项目。根据所选内容,我在回发期间显示/隐藏其他页面元素(我仅在初始加载时绑定(bind)数据)。客户经常打开此页面,我不希望他们每次打开时都将 500 个项目拉下来。目前,页面渲染大约需要 2 到 5 秒。我已开始迁移到该页面的完整 javascript/jquery 版本,但希望征求您的意见,因为我不喜欢新版本。

有没有办法让这个页面更快并限制每次下拉全部 500 个项目?

注意:有些用户希望直接输入 dentry 手术代码。其他人需要进行查找。

最佳答案

我们开发的系统可以从下拉列表中选择用户名,然后用户信息显示在下面。大约有 600 个用户,利益相关者的要求之一是必须在下拉列表中选择用户 - 利益相关者认为非技术用户更好地“理解”如何使用下拉列表。

我们加载下拉列表的性能非常好。我们执行以下操作:

  1. 尽快加载页面,但不要加载下拉列表
  2. 页面加载时,显示加载指示器,然后立即获取下拉列表的数据
  3. 我们通过使用 jQuery 调用 Web 服务来获取数据,该服务仅返回用户名和 ID,并且数据以 JSON 格式返回
  4. 请求数据的查询会缓存在服务器上以供将来请求
  5. 生成的 JSON 对象用于填充下拉列表
  6. 隐藏加载指示器即可完成

上述过程发生得非常快,并且带来了非常愉快的用户体验。

如果有的话,请非常努力地执行以下操作:

  • 即使您使用的是更新面板,也要避免回发 - 如果您的 View 状态较大,这会降低性能
  • 仅返回填充下拉列表所需的绝对最少数据
  • 不要访问任何非立即需要的数据。尽快加载页面,然后在用户阅读页面时获取剩余信息

向页面添加大量数据时,毫秒至关重要。您可以采取任何措施来减少对数据的调用(以及随后将该数据添加到页面中),这将极大地改善用户体验。

关于c# - 如何加速具有大量数据的服务器绑定(bind)控件的网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5157604/

相关文章:

c# - 单击按钮后关注文本框

javascript - 正则表达式:抓取我的标签内的文本

Javascript "selectElement.add(option, index)"在 Firefox 中工作,但在 Chrome 中工作

javascript - 带有原型(prototype)的简单水平 Javascript 导航

c# - 无法将类型 'System.IO.Stream' 隐式转换为 'Java.IO.InputStream'

c# - 忽略 OWC11 日期格式

页面加载后上传 jQuery 文件

javascript - 在网页上截取 Adob​​e flash 播放器的屏幕截图

c# - 将图像上传到 S3 后如何获取公共(public) URL?

javascript - "Disallow"当另一个正在执行 jQuery 时执行一个事件