【发布时间】:2009-07-10 17:01:02
【问题描述】:
我目前正在构建一个单页 AJAX 应用程序。这是一个大型“注册表单”,它被构建为一个多步骤向导,具有多个分支和基于用户做出的选择的不同措辞。表格的最后是一个可编辑的评论页面。用户提交表单后,它会向我们发送一封相当大的电子邮件,并向他们发送一封小电子邮件。这有点像一本非常无聊的选择你自己的冒险书。
功能蔓延已将这个应用程序的大小推到了当前架构的能力之外,而且它在任何速度较慢的计算机上运行都太慢了(对网络应用程序不利),尤其是那些使用 Internet Explorer 的计算机。它目前有 64 个单独的步骤、5400 个 DOM 元素,仅 .aspx 文件就有 300kb (4206 LOC)。在运行 FireFox 3 的快速机器上加载应用程序需要 1.5 秒,在运行 IE7 的较慢机器上加载应用程序需要 20 秒。在步骤之间移动大约需要相同的时间。
让我们回顾一下这些功能:
- 多步骤、多路径向导样式 表格(64 步)
- 当前步骤的显示方式与此类似:http://codylindley.com/CSS/325/css-step-menu
- 多个验证字段
- 根据用户更改措辞 选择
- 最终的、可编辑的评论页面
我正在使用 jQuery 1.3.2 和以下插件:
- jQuery 表单向导插件
- jQuery 线索提示插件
- jQuery 性感组合
- jQuery meioMask 插件
以及一些用于从 XML 文件加载措辞、运行评论页面和一些美学装备的自定义脚本。
我没有在任何地方公开发布此内容,但我主要是在寻找有关如何处理此类项目并使其重量轻且可扩展的一些技巧。如果有人对工具、教程或技术有任何想法,那就是我正在寻找的。我是一个相当新手的程序员(我主要是 CSS/xHTML/Design 专家),所以说话要轻声细语。我只需要一个好的攻击计划来让这个应用程序更快。有什么想法吗?
【问题讨论】:
-
300KB 页面中有多少是 ViewState?
-
说实话...我不知道。我对asp.net 的工作方式不是很熟悉。我怎么知道?
-
一种快速而肮脏的方法是查看页面源代码并搜索 name="__VIEWSTATE" 的输入字段,然后查看 value 属性中有多少个字符。
-
那么……没有。 ViewState 输入字段根本没有显示在我的源代码中。该页面实际上只是 xHTML 和 JavaScript,然后我使用 jQuery 表单插件通过 AJAX 将数据提交到另一个 aspx 页面。所以我猜这可能是我看不到视图状态的原因。
-
好的,所以它是纯 XHTML。你如何从页面发回结果?换句话说,什么/谁在处理用户在服务器端输入的表单?
标签: c# asp.net jquery performance wizard