|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果英语好,口才好,加上女孩子的优势说不定有机会进去做做别的工具)固然,网站功能优化是多方面的,这里先谈一下这些天来的所获:
1、誊写代码的习气;
再庞大的逻辑,也是从最复杂的入手下手。在誊写代码的过程当中,良多欠好的标准城市影响网站的功能;
以下是收拾出来的些许代码习气:
1)字符串的对照用string.Empty取代""
2)在遍历过程当中,先界说好计数变量,再遍历,如许会削减每次遍历就分派一次内存空间:
复制代码代码以下:
inti;
for(i=0;i<100;i++)
{
//codeing
}
3)一样的,用StringBuilder.Append()取代[csharp]string+="ABC"[/csharp];
4)在遍历轮回中中处置逻辑而不要挪用其他办法情势,那样在挪用时会有功能消耗
5)累加/减时,利用A+=1,A-=1;而不必A=A+1;如许减缓请求内存的次数
6)多用汇合操纵
a:假如假如汇合中元素范例流动,则可使用它们各自对应的汇合类,如数组、泛型等,如许能够制止装箱、拆箱操纵;
b:假如汇合中元素个数流动而且范例分歧,则利用数组存储;
c:假如对汇合的操纵次要是查找方面的,可使用HashTable,Dictionaty<TYey,TValue>
7)利用Server.Transfer来举行页面重定向
优点:功能比response.redirect要好良多,并且具有埋没URL的优点,能够制止客户端举行页面重定向;
害处:如果用户用革新或是前进会招致产生不测的情形,以是请慎用
8)削减服务器控件的使用
9)公道(得当时分)利用缓存
10)削减Cookies巨细
......
2、数据库
1)数据库最迟翻开、最早封闭;
2)优化数据库毗连设置,关于年夜型网站因为数据库中存在大批的数据,以是能够加年夜其数据库毗连池
MaxPoolSize=512;(默许为100)
3)优化SQL语句,并利用存储历程
注重:只管制止“select*from”之类的sql语句;只管不要再查询语句中利用子查询;只管利用索引;
4)利用DataReader
在DataReader中,我们常常会用dr["字段名"]的查找情势,可是这类写法倒是最耗功能的;
一样平常,利用基于「序列号」的查找,比基于「定名」的查找更无效率。个中,可分为4类:
写法(1)利用DataReader索引+基于「序列号」的查找,如:dr[1].ToString(),
写法(2)利用DataReader索引+基于「定名」的查找,如:dr["LastName"].ToString(),这是功能最欠好的写法
写法(3)利用Get开首的办法+基于「序列号」的查找,如:dr.GetString(1),写法
写法(4)利用GetSql开首的办法+基于「序列号」的查找,如:dr.GetSqlString(1),
写法(5)利用基于「序列号」+GetOrdinal()办法的查找。
GetOrdinal()函数办法是甚么呢?
我们从数据库中誊写对应的字段到我们查找的序列号上,可是偶然候拔出新的字段时,会有所变更。而GetOrdinal()的感化就是让我们本人来序列化绝对应的字段。
a、起首界说序列号intclassid,classnameid;
b、然后经由过程GetOrdinal()办法付与新的序列号;
c、经由过程GetSqlSring(序列号)办法便可找到对应的字段。
示例代码以下:
复制代码代码以下:
SqlConnectioncon=newSqlConnection(connString);
stringstrcmd="selecttop1classid,classnamewherecms_class";
SqlCommandcmd=newSqlCommand(strcmd,con);
con.Open();
SqlDataReaderdr=cmd.ExecuteReader();
intnumberId,numberName;
numberId=Convert.ToInt32(dr.GetOrdinal("classid"));
numberName=Convert.ToInt32(dr.GetOrdinal("classname"));
con.Close();
if(dr.Read())
{
stringresult=dr.GetSqlString(numberId)+""+dr.GetSqlString(numberName);
}
dr.Close();
我感觉可以顶到50楼,出乎意料的是大家居然纷纷写出自己的博文,还被编辑做成了专题,置于首页头条。 |
|