艺术迷(fansart.com) 首页 收藏本站 RSS频道
艺术迷首页 -> 网页设计 -> 如何写出优秀的ASP应用文章
2006-3-2   作者:佚名   来源:
页面功能: 【评论】有错就点】 【字体: 】 【打印】 【关闭【收藏本页】

如何写出优秀的ASP应用文章


什么是ASP 

Active Server Page,简称ASP,是: 

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

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

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

ASP不是: 

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

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

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

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

l 在发布之前要测试; 

l 选择性能较好的部件; 

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

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

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

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

u 站点导航; 

u 页面布局; 

u 可用性; 

n 使用ALT和Title属性; 

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

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

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

n 是否支持WebTV、PDA…? 

n 设置IMG的width和height属性。 

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

u 使用帧(Frame)? 

u 使用Cookies的个性化; 

u 避免坏连接; 

u 使用meta标签; 

u 内容审核; 

u 内容检索; 

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

u 减少下载时间; 

三层、四层应用设计 



可读性、可维护性 
u 使用注释; 

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

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

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

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

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

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



正确的方法: 

u 使用Server.URLEncode 

u 错误捕获和处理 

国际化: 

u 使用<%CodePage%> 

u 使用Session.CodePage 

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

其他: 

u 使用#include 重用代码 

u 使用分页技术 

站点安全: 

u 客户身份验证 

u 输入验证 

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

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

u 使用ADSI做安全管理 



Session和Application状态 
Session的使用: 

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

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

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

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

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

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

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

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

u 消耗内存; 

u Session有超时的问题 

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

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

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

u 可选方案: 

n cookies 

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

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

n querystring 参数 

n 如amazon的url方式 

n 隐藏的表单 

Application变量: 

u 共享变量 

u 不能持久保存 

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

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

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

n Response.Expires=-10000; 

n Response.AddHeader “Pragma”‚”no-cache” 

uResponse.AddHeader “cache-control”‚”no-store” 

u 服务器缓存 

u proxy缓存 

u 客户端缓存 

部件 
u 性能 

u 伸缩性 

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

u 被ASP或其他环境重用 

u 事务处理 

u 类型安全 

u 存取操作系统特性 

u 保护知识产权 

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

n MTS事务处理 

n 上下文安全性 

n ASP内部部件 

n OnStartPage、OnEndPage 

u 使用延迟对象初始化 

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





性能 
n Response缓冲:Response.Buffer=True 

n 关闭Connection并:set Connection=Nothing 

n 使用局部变量 

n 用代替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_MACHINE\SYSTEM\ CurrentControlSet\Services\w3SVC\ASP\Parameters,增加ProcessorThreadMax,减小这个值,看看性能的变化;或者增大这个值。) 

n 设置AspScriptEngineCacheMax,使它等于ProcessorThreadMax*CPU个数。缺省的是30;(在系统路径下:\ system32\inetsrv/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 

网友评论
发表评论
您的姓名: 匿名发送
电子邮件:
评论内容:
不能超过100个字符



所有留言只代表网友个人观点,不代表本站观点。
请各位遵纪守法并注意语言文明。
新闻搜索
关 键 词:
搜索范围:
全站精华
图文精彩
清风楼书(一)[图]--平面广告
【2006-3-29 10:52:08】
清风楼书(一)
古典楼书(精品欣赏)(1)[图]--平面广告
【2006-4-5 15:03:08】
古典楼书(精品欣赏)(1)
美国插画师kevindart作品(1)[图]--CG插画
【2006-4-11 15:34:43】
美国插画师kevindart作品(1)
美国插画师kevindart作品[图]--CG插画
【2006-4-11 15:37:32】
美国插画师kevindart作品
荷兰著名画家Anton
【2006-4-11 15:49:41】
荷兰著名画家Anton Pieck插画
非常可爱的儿童插画(1)[图]--CG插画
【2006-4-11 15:59:16】
非常可爱的儿童插画(1)
回忆紫禁城里那些逝去的[图]--中国艺术
【2006-4-11 16:34:31】
回忆紫禁城里那些逝去的
国粹京剧脸谱表情[图]--界面设计
【2006-4-11 17:51:33】
国粹京剧脸谱表情
高傲的玫瑰-温碧霞[图]--摄影艺术
【2006-4-12 8:58:34】
高傲的玫瑰-温碧霞
北邦插画欣赏(1)[图]--CG插画
【2006-4-13 9:49:02】
北邦插画欣赏(1)
yashasi插画作品欣赏[图]--CG插画
【2006-4-13 18:32:29】
yashasi插画作品欣赏
cg插画欣赏[图]--CG插画
【2006-4-14 9:21:18】
cg插画欣赏
溯源居广告欣赏--小红人[图]--平面广告
【2006-4-14 14:45:57】
溯源居广告欣赏--小红人
泊林花园推广故事绘本(1)[图]--CG插画
【2006-4-20 11:34:33】
泊林花园推广故事绘本(1)
泊林花园推广故事绘本(2)[图]--CG插画
【2006-4-20 11:43:23】
泊林花园推广故事绘本(2)
万科西山庭院.格.沉.尊[图]--平面广告
【2006-4-21 9:08:35】
万科西山庭院.格.沉.尊
水木清华地产广告欣赏[图]--平面广告
【2006-4-26 9:31:54】
水木清华地产广告欣赏