ASP.NET TreeView 性能

标签 asp.net javascript performance treeview postback

在使用 TreeView 时,为了最大限度地提高性能,建议采取什么措施?

通过最大化性能,我的意思是最小化客户端到服务器之间的行程次数,即回发。

那是否意味着我的大部分业务逻辑都将位于 Javascript 中?这里的折衷是什么?

我说的是 ASP.net TreeView 服务器控件

最佳答案

首先,决定您要放置编程逻辑的位置:为了提高速度,最好使用其他一些 TreeView 控件(不使用表格布局)和 javascript 框架来处理点击事件。我建议使用普通的旧 ashx 处理程序文件进行 AJAX 通信,它们比 aspx 和调用页面方法的开销更少。 AJAX 调用和结果必须仅包含 JSON 或 XML 格式的数据,而不是 HTML。

另一方面,像 VS 和 TreeView 控件这样的 RAD 工具可以快速生成 Web 应用程序,但当然也有一些缺点:您需要返回服务器来处理每个点击/选择事件,这会导致整个页面出现问题ajax 调用的生命周期处理和大量数据传输(对于每个 ajax 事件,ViewState 和 HTML 从服务器传输到客户端)。

但是如果你想坚持使用 TreeView,我建议:
- CSS 友好控制适配器:它们大大减少了生成的 html 的大小(在我的例子中,从 100kb 到 20kb 的 html)并用 ul/li 元素替换表格布局
- 将 TreeView 包装在 ASP.NET AJAX UpdatePanel 中,但只是 TreeView ,并使用面板的条件更新。不要害怕使用多个更新面板
- 保持 ViewState 最小化

关于ASP.NET TreeView 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/727983/

相关文章:

c# - 获取远程 IP 地址或机器名称

asp.net - 仅 Web API v2 项目的 HttpContext.Current.User null

javascript - Chrome 打开包含 url 的选项卡

javascript - 如何使 html <a target ='_parent' > 指向与 javascript window.opener 相同的位置?

c# - 从月份数组中获取一系列值

sql - 如果我在 SQLite 中使用 blob 字段作为主键,是否会遇到性能问题?

asp.net - IIS/ASP.NET 响应缓存控制 : private for all requests

c# - 从服务器保存 html 文件

javascript - 类型错误 : todo is not a function

c# - 静态与非静态方法