如何写出优秀的ASP应用
2008-02-23 05:27:40来源:互联网 阅读 ()
什么是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,减小这个值,看看性能的变化;或者增大这个值。)
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:浅谈ASP编程的思路与纠错
- 如何写出优秀的ASP应用文章 2008-02-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash