页面和服务器控件处理
状态管理
数据访问
Web 应用程序
编码实践
页面和服务器控件处理
下列准则提供了有效使用 ASP.NET 页面和控件的建议。
避免到服务器的不必要的往返行程 在某些情况下不必使用 ASP.NET 服务器控件和执行回发事件处理。例如,在 ASP.NET 网页中验证用户输入经常可在数据提交到服务器之前在客户端进行。通常,如果不需要将信息传递到服务器以进行验证或将其写入数据存储区,请避免使用导致到服务器的往返行程的代码,这样可以提高页的性能并改善用户体验。您也可以不执行整个往返行程,而是使用客户端回调从服务器中读取数据。有关详细信息,请参见在 ASP.NET 网页中不经过回发而实现客户端回调。
如果您开发自定义服务器控件,请考虑让它们为支持 ECMAScript (JavaScript) 的浏览器呈现客户端代码。通过以这种方式使用服务器控件,您可以显著地减少信息被发送到 Web 服务器的次数。有关更多信息,请参见开发自定义 ASP.NET 服务器控件。
使用 Page 对象的 IsPostBack 属性来避免对往返行程执行不必要的处理 如果您编写处理服务器控件回发处理的代码,有时可能需要代码仅在首次请求页时执行,而不是每次回发时都执行。根据该页是否是响应服务器控件事件生成的,使用 IsPostBack 属性有条件地执行代码。
只在必要时保存服务器控件视图状态 自动视图状态管理使服务器控件可以在往返行程中重新填充它们的属性值,而您不需要编写任何代码。但是,因为服务器控件的视图状态在隐藏的窗体字段中往返于服务器,所以该功能影响性能。了解在哪些情况下视图状态会有所帮助,在哪些情况下它影响页的性能,这样是有帮助的。例如,如果您将服务器控件绑定到每个往返行程上的数据,因为控件的值会在数据绑定期间用新值替换,所以保存的视图状态没有用处。在这种情况下,禁用视图状态可以节省处理时间并减少页的大小。
默认情况下,为所有服务器控件启用视图状态。若要禁用它,请将控件的 EnableViewState 属性设置为 false,如下面的 DataGrid 服务器控件示例所示:
<asp:datagrid EnableViewState="false" datasource="..." runat="server"/>
<%@ Page EnableViewState="false" %>
@ Control 指令中还支持 EnableViewState 属性以指定是否为用户控件启用视图状态。
若要分析服务器控件在页中使用的视图状态的大小,请通过将 trace="true" 属性包含在 @ Page 指令中启用对该页的跟踪。然后在跟踪输出中,查看“控件层次结构”表的“Viewstate”列。有关跟踪和如何启用它的信息,请参见 ASP.NET 跟踪。
除非有特殊的原因要关闭缓冲,否则使其保持打开状态 禁用 ASP.NET 网页的缓冲会导致大量的性能开销。有关更多信息,请参见 Buffer 属性。
使用 Transfer Server 对象或跨页发送的方法在同一个应用程序中的不同 ASP.NET 页之间重定向 有关详细信息,请参见将用户重定向到另一页。
状态管理
下列准则提供了有效进行状态管理的建议。
当不使用会话状态时禁用它 并不是所有的应用程序或页都需要具体用户的会话状态;您应该在不需要时禁用会话状态。若要禁用页的会话状态,请将 @ Page 指令中的 EnableSessionState 属性设置为 false,如下面的示例所示:
<%@ Page EnableSessionState="false" %>
如果页需要访问会话变量,但不会创建或修改它们,则将 @ Page 指令中的 EnableSessionState 属性设置为 ReadOnly。
还可以禁用 XML Web services 方法的会话状态。有关更多信息,请参见使用 ASP.NET 和 XML Web 服务客户端创建的 XML Web 服务。
若要禁用应用程序的会话状态,请在应用程序的 Web.config 文件的 SessionState 节中将 Mode 属性设置为 Off,如下面的示例所示:
<sessionState mode="Off" />
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/