1. C#语言方面
1.1 垃圾回收
垃圾回收解放了手工管理对象的工作,提高了程序的健壮性,但副作用就是程序代码可能对于对象创建变得随意。
1.1.1 避免不必要的对象创建
由于垃圾回收的代价较高,所以C#程序开发要遵循的一个基本原则就是避免不必要的对象创建。以下列举一些常见的情形。
1.1.1.1 避免循环创建对象 ★
如果对象并不会随每次循环而改变状态,那么在循环中反复创建对象将带来性能损耗。高效的做法是将对象提到循环外面创建。
1.1.1.2 在需要逻辑分支中创建对象
如果对象只在某些逻辑分支中才被用到,那么应只在该逻辑分支中创建对象。
1.1.1.3 使用常量避免创建对象
程序中不应出现如 new Decimal(0) 之类的代码,这会导致小对象频繁创建及回收,正确的做法是使用Decimal.Zero常量。我们有设计自己的类时,也可以学习这个设计手法,应用到类似的场景中。
1.1.1.4 使用StringBuilder做字符串连接
1.1.2 不要使用空析构函数 ★
如果类包含析构函数,由创建对象时会在 Finalize 队列中添加对象的引用,以保证当对象无法可达时,仍然可以调用到 Finalize 方法。垃圾回收器在运行期间,会启动一个低优先级的线程处理该队列。相比之下 ......
page:page对象是指页面自身的方式,在整个页面的执行期内,都可以用该对象。
Request:此对象封装了由Web浏览器或者其他客户端生成的HTTP请求的细节,提供从浏览器读取信息或者读取客户端信息等功能,用于页面请求期。
Response:此对象封装了返回到HTTP客户端的输出,提供向浏览器输出信息或者发送指令,用于页面的执行期。
Server:该对象是Jsp中没有的,它提供了服务器端的一些属性和方法。
Application:为所有用户提供共享信息,作用于整个应用程序云行期。
Session:为某个用户提供共享信息,作用于用户会话期。
Cookie:保持客户端的共享信息方式。 ......
asp.net错误处理方法 大部分都用 try catch
我们也可以在页面定义 protected void Page_Error(object sender, EventArgs e)方法处理错误信息
{
//先获取当前发生异常
Exception ex = Server.GetLastError().GetBaseException();
if (ex is ArgumentOutOfRangeException)
{
//dosomething
}
//记得清除上一个异常信息
Server.ClearError();
}
可以在全局应用程序类application_start事件 写入日志 记录当前网站异常信息! ......
实现页面换肤 给html form 添加相应的样式 代码如下:
private string _StyleClass;
public string StyleClass
{
get { return _StyleClass; }
set { _StyleClass = value; }
}
private void StyleForm()
{
HtmlForm Form1 = this.FindControl("form1") as HtmlForm;
Form1.Attributes.Add("class", _StyleClass);
}
protected override void OnPreRender(EventArgs e)
{
//控件呈现调用方法
StyleForm();
base.OnPreRender(e);
}
......
一、Response对象
Response对象是HttpResponse类的一个实例。该类主要是封装来自ASP.NET操作的HTTP响应信息。
1.Response对象的属性
① BufferOutput
说明:获取或设置一个值,该值指示是否缓冲输出,并在完成处理整个页之后将其发送
属性值:如果缓冲了到客户端的输出,则为true;否则为false。默认为true
② Cache
说明:获取Web页的缓存策略(过期时间、保密性、变化子句)
属性值:包含有关当前响应的缓存策略信息的HttpCachePolicy对象
③ Charset
说明:获取或设置输出流的HTTP字符集
属性值:输出流的HTTP字符集
④ IsClientConnected
说明:获取一个值,通过该值指示客户端是否仍连接在服务器上
属性值:如果客户端当前仍在连接,则为true;否则为false
2.Response对象的方法
Response对象可以输出信息到客户端,包括直接发送信息给浏览器、重定向浏览器到另一个URL或设置cookie的值。ASP.NET中引用对象方
法的语法是“对象名.方法名”。& ......
由于mvc架构和传统的.net程序有所不同,所以进行异步提交的时候,就和过去的方法参数有所差别,下面我就介绍下两种常用的提交方式在MVC下如何调用。
1.直接提交数据到Action
假设一个发布BLOG的页面的回复功能,有一个ID为'ReInfo'的div负责显示回复的消息。
点击提交按钮后,qj的post方法将数据传递到/Blog/BlogRe这个Action,参数是ReInfo和BlogId
然后,执行post的第三个匿名方法将刚回复的数据添加到ReInfo中
代码如下:
<div id='ReInfo'></div>
<fckeditorv2:fckeditor id="FCKeditor1" runat="server" Width="580px"
EnableXHTML="true" EnableSourceXHTML="true" basepath="~/FCKeditor/"
height="500px"></fckeditorv2:fckeditor>
<script
type="text/javascript">
function getEditorHTMLContents() {
var oEditor =
FCKeditorAPI.GetInstance("FCKeditor1");
&nbs ......