在使用 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/