在使用 TreeView 时,为了最大限度地提高性能,建议做些什么?
通过最大化性能,我的意思是最小化客户端到服务器之间的旅行次数,即回发。
这是否意味着,我的大部分业务逻辑都将位于 Javascript 中?这里的妥协是什么?
我说的是 ASP.net TreeView 服务器控件
在使用 TreeView 时,为了最大限度地提高性能,建议做些什么?
通过最大化性能,我的意思是最小化客户端到服务器之间的旅行次数,即回发。
这是否意味着,我的大部分业务逻辑都将位于 Javascript 中?这里的妥协是什么?
我说的是 ASP.net 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,但只是树视图,并使用面板的条件更新。不要害怕使用多个更新面板
——保持 ViewState 最小化
开发开销 - 您必须在 javascript 和代码后面维护您的业务逻辑。
如果脚本很大,客户端性能的降低也是一个问题。