首页 >> 读书频道 >> 电脑 >> 如何写出优秀的ASP应用
 
· 在access中增加农历
· 在ASP中使用事务控制
· 改进 ASP 应用程序中
· 在ASP中过滤用户输入
· ADO数据与XML数据间
· 面向对象的ASP技术:思
· ASP开发网页时需要牢记
· 用SOAP和ASP进行服
· 利用ASP+JMAIL进
· 查看ASP Sessio
· ADO+管理器功能
· 简易ASP+注册系统
 
· 美容养颜手册
· 加油金顺剧情分集介绍完整
· 红楼梦:120回全本[清
· 素质教育在美国
· 全唐诗卷四十六
· 韩剧《布拉格恋人》剧情介
· 夜航船[作者:明·张岱]
· 局外人[作者:韩·可爱淘
· 现场流行病学
· 源氏物语[日本:紫式部]
· 武林寓言故事
· 2006高考录取规则
 
· (出租)中动商场部分及写
· (出租)中动动漫基地&#
· 喜剧学院
· 《善德女王》剧情介绍
· 魔女18号 剧情
· 丑女无敌剧情介绍
· 魔女幼熙剧情介绍
· 龙游天下剧情介绍
· 震撼世界的七日剧情介绍
· 静静的白桦林剧情介绍
· 心情日记—老公今天我想对
· 旗舰剧情介绍
欢迎来到月影社区!如果您觉得这里不错,请推荐给您的朋友们。月影社区:http://wf66.com/

如何写出优秀的ASP应用


查看有无更新版本

关键字:ASP技巧 2006-9-9

 

怎样创建性能棒、正确性、可维护性和性能俱佳的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

如何写出优秀的ASP应用

[ 1 ]
如何写出优秀的ASP应用 num

打印本页 关闭

关于我们版权声明本站导航友情连结作品演示 TOP↑