通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 MY小屋
联系我们
设为首页
加入收藏

 

QQ,ASP,PHP,JSP,XML,SQL,.Net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | Q Q 专栏 | 建站经验 | 在线工具 | 站长Club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>编程开发>>asp专区>>正文 新版上线![旧版]
注:打开慢时请稍等

如何写出优秀的ASP应用

http://www.iyit.net  日期:2006-5-25 12:34:47  来源:网络转载   点击:
参加讨论

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

什么是ASP

Active Server Page,简称ASP,是:

. 连接网友界面(HTML)和商业逻辑(Business Logic);
. 提供一致的、容易使用的、有状态保持的、基于WEB的客户端;
. 为那些需要事务处理的WEB 应用提供应用程序环境。

ASP不是

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

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

. 开发应用程序,而不是开发一个一个的孤立ASP页面;
. 对输入和输出进行缓存;
. 在发布之前要测试;
. 选择性能较好的部件;
. 减少数据库的存取:缓存变换后的结果;
. 使用MSMQ来处理有时间延迟的工作;

站点设计

. 你的站点想提供什么?
. 信息架构:80/20准则;
. 站点导航;
. 页面布局;
. 可用性;
. 使用ALT和Title属性;
. 不使用图片或者Image Map的导航;
. 适合大多数低版本浏览器,考虑他们对ActiveX、RDS、XML、DHTML、Java Applet的支持状况;
. 屏幕分辨率和屏幕颜色数
. 是否支持WebTV、PDA…?
. 设置IMG的width和height属性。
. 非浏览器的访问,如自动机器人(Spider);
. 使用帧(Frame)?
. 使用Cookies的个性化;
. 避免坏连接;
. 使用meta标签;
. 内容审核;
. 内容检索;
. 结果反馈:用户反馈和跟踪;
. 减少下载时间;

三层、四层应用设计

可读性、可维护性

. 使用注释;
. 在VBScript脚本中使用<%Optio. 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方式
. 隐藏的表单

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变量中

性能

. Response缓冲:Response.Buffer=True
. 关闭Connection并:set Connection=Nothing
. 使用局部变量
. 用<Object >代替Server.CreateObject
. 不要使用Session和Application变量
. 不要将COM对象存储在Session或者Application变量中
. 关闭脚本调试
. 避免重复的字符串相加
. 在费时的页面顶端使用Response.IsClientConnected
. 使用MSMQ
. 不要在Session或者Application中存储大数组
. 不要ReDim 数组
. 将集合类型的对象赋给临时变量
. 减小微处理器的最大线程数(运行regedt32,在HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\w3SVC\ASP\Parameters,增加ProcessorThreadMax,减小这个值,看看性能的变化;或者增大这个值。)
. 设置AspScriptEngineCacheMax,使它等于ProcessorThreadMax*CPU个数。缺省的是30;(在系统路径下:\system32\inetsrv/adminisamples下,键入adsutil.vbs,设置/w3svc/AspScriptEngineCacheMax);
. 减少Session.Timeout;
. 在MMC中,设置ASP应用程序缓冲为有效。

把某些工作交给客户端

. CSS、DHTML
. XML
. RDS
. Remote Scripting
. Xmlhttp
. 客户端验证
. 减小文件大小
. 尽可能避免https和SSL
. 使用Response.End测试性能

数据库

. 减少数据库存取访问;
. 缓存变换后的结果;
. 使用ODBC连接池和OLEDB资源池;
. 使用系统DSN或者非DSN,不要使用DSN或者文件DSN;
. 使ADO运行在双线程模式(Both-threaded):makefre.bat;
. 使用ADO的Field对象;
. GetString或者GetRows比较快;
. RDS和XML把负载嫁到客户端;
. 不要使用Select *,把字段写出来;
. 尽量使用SQ. Server 7,不要使用Access;
. 使用SQ. Server的特性:存储过程、Job、Join、sort、group
. 使用SQ. Analysis,优化SQL的性能
. 使用索引
. 本地使用Name-pipes,远程使用Sockets
. 准确地指定Command Type

IIS 5的新特性

. 可靠的重新启动
. ASP性能提高
. Server.Transfer比Server.Redirect更好
. Server.Execute
. Server.GetLastError



编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:Asp Object 之:BinaryWrite
下一篇:Asp Object 之:AppendToLog
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
ASP 3.0高级编程(二) ASP 3.0高级编程(四) ASP 3.0高级编程(六)
Asp Object 之:AddHeader Asp Object 之:AppendToLog Asp Object 之:BinaryWrite
在ASP程序中访问Access数据库 Asp Object 之:CacheControl ASP+Access的安全隐患及对策
Asp Object 之:Clear ASP中数据库调用中常见错误的现象和解决 Asp Object 之:ContentType
Asp Object 之:End Asp Object 之:ServerVariables Asp Object 之:ExpiresAbsolute
Asp Object 之:Flush Asp Object 之:Form ASP初学者常犯的几个错误
ASP:网上通讯簿1.00 asp,php 和 jsp 比较 之我见 刷一次变一次图的ASP代码
在ASP网站设计中表单验证  一段在asp中加密与解密对应的函数 ASP技术访问WEB数据库 
最新更新 热点排行 推荐新闻
ASP 3.0高级编程(二)
ASP 3.0高级编程(四)
模似windows XP 左侧的菜单效果(3)
ASP 3.0高级编程(六)
Asp Object 之:AddHeader
ASP 3.0高级编程(二)
ASP 3.0高级编程(四)
模似windows XP 左侧的菜单效果(3)
ASP 3.0高级编程(六)
Asp Object 之:AddHeader
Asp Object 之:AppendToLog
如何写出优秀的ASP应用
Asp Object 之:BinaryWrite
在ASP程序中访问Access数据库
Asp Object 之:CacheControl
ASP自动解压RAR文件
在ASP中使用SQL语句之3:LIKE、NOT LIK
ASP中使用SQL语句教程
用ASP制作强大的搜索引擎
WEB打印大全
优秀公益广告作品欣赏(8)
java数据类型转换
Windows XP专业版IIS连接数的更改
新开放QQ免费挂级网站
优秀公益广告作品欣赏(7)
免费在QQ上看在线电影电视听音乐
WEB服务器配置全攻略(三)
QQ珊瑚虫外挂4.0版本发布!
免费把QQ炫铃设为本机QQ的系统提示音
Office2007简体中文版浮出水面 美图抢
ASP中使用SQL语句教程
测试一下喽!
如何在Win20003中更好的玩游戏
QQ收费头像免费使用的方法 
微软将在华推分期付款,充值卡PC 可低价
 AMD处理器AM2测试 风扇竟运行7分钟
exeplorer.exe错误的问题的总结、解决
ASP.NET 2.0 中的异步页功能应用
硬盘坏道修复及数据恢复宝典
免费登录搜索引擎入口大全
搜索引擎注册九大秘法
小心摄像头成为黑客偷窥你的眼睛
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyrights © 2004-2006 iYiT.Net All Rights Reserved.
网站合作、广告联系QQ:147007642、466949678
易特网络技术 点击这里给我发消息