欢迎光临
我们一直在努力

如何写出优秀的asp应用_asp技巧

建站超值云服务器,限时71元/月

怎样创建性能棒、正确性、可维护性和性能俱佳的ASP应用程序?要做什么?不做什么?本文以提纲的形式,给出了主要的Check-Points(检查点)。


什么是ASP


Active  Server  Page,简称ASP,是:


□ 连接网友界面(HTML)和商业逻辑(Business  Logic);


□ 提供一致的、容易使用的、有状态保持的、基于WEB的客户端;


□ 为那些需要事务处理的WEB  应用提供应用程序环境。



ASP不是:


□ 实现商业逻辑(Business  Logic)的地方;商业逻辑应该通过COM+、MTS或者数据库来实现。



ASP的使用者应该有下面的教训:


□ 开发应用程序,而不是开发一个一个的孤立ASP页面;


□ 对输入和输出进行缓存;


□ 在发布之前要测试;


□ 选择性能较好的部件;


□ 减少数据库的存取:缓存变换后的结果;


□ 使用MSMQ来处理有时间延迟的工作;



站点设计
□ 你的站点想提供什么?


□ 信息架构:80/20准则;


□ 站点导航;


u  页面布局;


u  可用性;


n  使用ALT和Title属性;


n  不使用图片或者Image  Map的导航;


□ 适合大多数低版本浏览器,考虑他们对ActiveX、RDS、XML、DHTML、Java  Applet的支持状况;


□ 屏幕分辨率和屏幕颜色数


□ 是否支持WebTV、PDA…?


□ 设置IMG的width和height属性。


□ 非浏览器的访问,如自动机器人(Spider);


□ 使用帧(Frame)?


□ 使用Cookies的个性化;


□ 避免坏连接;


□ 使用meta标签;


□ 内容审核;


□ 内容检索;


□ 结果反馈:用户反馈和跟踪;


□ 减少下载时间;



三层、四层应用设计


可读性、可维护性

□ 使用注释;


□ 在VBScript脚本中使用<%Option  Explicit%>;


□ 使用字符串变量存储SQL字符串:便于调试;


□ 使用Server.MapPath和相对路径;


□ 使用ADODB.INC或者<!—metadata  typelib=somelib  file=somedll–>来引用常量,不要直接使用常量数值。


□ 指定ADO调用的缺省参数,避免出错;


□   使用库或者部件来封装代码。



正确的方法:



□ 使用Server.URLEncode


□ 错误捕获和处理


国际化:



□ 使用<%CodePage%>


□ 使用Session.CodePage


□ 在IIS5.0中,Response.write支持UTF8



其他:


□   使用#include  重用代码


□ 使用分页技术


站点安全:


□ 客户身份验证


□ 输入验证


□   #include  文件不要使用.INC后缀,使用.ASP或者设置.INC的应用程序映射


□ 把MDB文件存放在非WEB路径下;


□ 使用ADSI做安全管理



Session和Application状态
Session的使用:


□ 使用起来很方便但是很有问题;


□   HTTP是一个无状态的协议;


□ 设计购物推车特别有用;


□ 不利于可伸缩性设计(Scalability);


□   在不需要Session的页面中使用<%EnableSessionState=false%>


□   尽可能完全避免使用Session;


□   在多个web服务器情况下不适合;


□   某些部件使Session运行在单一线程模式,减少了吞吐量;


□   消耗内存;


□   Session有超时的问题


□ 需要客户端的浏览器打开cookie设置;


□ 不要在session中保存recordset,或者缓存connection对象;


□   在global.asa不要使用空的Session_OnEnd;


□   可选方案:


□   cookies


□   直接状态编码:简单、容易、不安全


□   后端数据库的ID作为状态值


□   querystring  参数


□   如amazon的url方式


n  隐藏的表单



Application变量:


□   共享变量


□   不能持久保存


□   多个web服务器时不行,除非只是只读变量。


缓存
□   对静态内容非常理想


□   不要使用Response.Expires=0,使用负数:


□   Response.Expires=-10000;


□   Response.AddHeader  “Pragma”,”no-cache”


□ Response.AddHeader  “cache-control”,”no-store”


□ 服务器缓存


□   proxy缓存


□  客户端缓存



部件

□ 性能


□ 伸缩性


□分离商务逻辑和页面表现


□  被ASP或其他环境重用


□  事务处理


□  类型安全


□  存取操作系统特性


□  保护知识产权


□  在下列情况下使用Server.CreateObject:


□  MTS事务处理


□  上下文安全性


□  ASP内部部件


□  OnStartPage、OnEndPage


□  使用<Object  RunAt=server>延迟对象初始化


□  是否保存到Session或者Application变量中



性能

n  Response缓冲:Response.Buffer=True


n  关闭Connection并:set  Connection=Nothing


n  使用局部变量


n  用<Object  >代替Server.CreateObject


n  不要使用Session和Application变量


n  不要将COM对象存储在Session或者Application变量中


n  关闭脚本调试


n  避免重复的字符串相加


n  在费时的页面顶端使用Response.IsClientConnected


n  使用MSMQ


n  不要在Session或者Application中存储大数组


n  不要ReDim  数组


n  将集合类型的对象赋给临时变量


n  减小微处理器的最大线程数(运行regedt32,在HKEY_LOCAL_MACHINESYSTEM  CurrentControlSetServicesw3SVCASPParameters,增加ProcessorThreadMax,减小这个值,看看性能的变化;或者增大这个值。)


n  设置AspScriptEngineCacheMax,使它等于ProcessorThreadMax*CPU个数。缺省的是30;(在系统路径下:system32inetsrv/adminisamples下,键入adsutil.vbs,设置/w3svc/AspScriptEngineCacheMax);


n  减少Session.Timeout;


n  在MMC中,设置ASP应用程序缓冲为有效。



把某些工作交给客户端:


n  CSS、DHTML


n  XML


n  RDS


n  Remote  Scripting


n  Xmlhttp


n  客户端验证


n  减小文件大小


n  尽可能避免https和SSL


n  使用Response.End测试性能


 



数据库

n  减少数据库存取访问;


n  缓存变换后的结果;


n  使用ODBC连接池和OLEDB资源池;


n  使用系统DSN或者非DSN,不要使用DSN或者文件DSN;


n  使ADO运行在双线程模式(Both-threaded):makefre.bat;


n  使用ADO的Field对象;


n  GetString或者GetRows比较快;


n  RDS和XML把负载嫁到客户端;


n  不要使用Select  *,把字段写出来;


n  尽量使用SQL  Server  7,不要使用Access;


n  使用SQL  Server的特性:存储过程、Job、Join、sort、group


n  使用SQL  Analysis,优化SQL的性能


n  使用索引


n  本地使用Name-pipes,远程使用Sockets


n  准确地指定Command  Type



IIS  5的新特性

n  可靠的重新启动


n  ASP性能提高


n  Server.Transfer比Server.Redirect更好


n  Server.Execute


n  Server.GetLastError

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 如何写出优秀的asp应用_asp技巧
分享到: 更多 (0)

相关推荐

  • 暂无文章