木子屋 Dnawo's BLOG

2007-05 归档

共 69 篇

最大限度优化你的Asp性能

ASP 能快速执行你的动态网页,但你还可以通过紧缩代码和数据库连接以使它们执行更快。这是一篇关于怎样精简代码和Asp 特征以获得最快执行速度的详细文章。对于一个急燥的用户来说,任何在按下用户按钮到结果出现在它们的屏幕之间的延迟可能意味着它们会转到浏览其它的站点?假如你的是商业站点,这有可能意味着失去潜在的销售。 我们没有任何办法控制用户的带宽,但我们的确能通过优化Asp 站点来获得最佳的性能。大部分潜在性能的提升是通过系统改变而不是紧缩代码,一个不合适的想法是,一旦遇到系统效率问题,就向系统管理者提意见要其升级系统。 首先,哪个因素可能影响Asp的性能?很不幸,有很多因素?下面这些只是其中的一部分:…

isNull(str)、 isEmpty(str)和 str = ""的区别

1.isnull() Null 值指出变量不包含有效数据。Null 与 Empty 不同,后者指出变量未经初始化。Null 与零长度字符串 ("") 也不同,零长度字符串往往指的是空串。 重点 使用 IsNull 函数可以判断表达式是否包含 Null 值。在某些情况下想使表达式取值为 True,例如 IfVar=Null 和 IfVarNull,但它们通常总是为 False。这是因为任何包含 Null 的表达式本身就为 Null,所以表达式的结果为 False。 下面的示例利用 IsNull 函数决定变量是否包含 Null : Dim MyVar, MyCheck MyCheck = IsNull(MyVar) ' 返回 False…

用ASP列出服务器上的所有硬盘及类型

<% function Tran(drv) select case drv case 0:Tran="设备无法识别" case 1:Tran="软盘驱动器" case 2:Tran="硬盘驱动器" case 3:Tran="网络硬盘驱动器" case 4:Tran="光盘驱动器" case 5:Tran="RAM虚拟驱动器" end select end function Set fs=Server.CreateObject("Scripting.FileSystemObject") response.…

探讨一下rs(0)和rs("fieldname")的执行效率

事实已证明了用索引数(index number)访问记录集元素要比用字段名称(field name)快出几倍,按字符串查询要比按整数查询花去更多的时间和系统资源,因此,在遍历数据库时应注意下面的两个问题: 1.尽量最少使用select * 这样的语句 在遍历某表里少量的字段时,select * 语句的执行效率是很低的,因为在执行这样的语句的时候其实执行了两次查询,在执行select语句前,首先必须查询系统表来确定名称和数据类型。 2.在使用记录集rs值前,应该把它赋值给本地变量。这尤其适用于操作Text/Memo字段,我发现在"read mode"下调用本地变量比从记录集中从新调用rs值要略快,特别是在多次recall recordset时,效果会更明显。…

提高ASP页面的执行效率

  导言   改善程序性能是一件很微妙的事情。尤其是和INTERNET相关的程序,像ASP程序,制约其性能的因素很多,像WEB服务器、TCP/IP网络和数据库服务器等。这些大都是与硬件相关。 其实在软件上,好的程序设计的方法和正确的参数配置也可以提高程序的性能,有时在同等情况下只要改变一个参数,程序执行效率就能大大提高。本文就试着在这方面做些探索。   一.影响性能的因素   ASP程序运行的性能主要决定于以下2个大方面:   1.HTML页面的执行效率   2.反应时间,其中反应时间主要受制于下面要素:   (1).ASP页面的执行效率   (2).数据库因素   下面我们就来详细讨论一下。…

披着羊皮的大野狼 ASP中Session技巧

  写过稍微大型一点 ASP 的人都知道,Session 这个对象真是好用,它可以用来记录使用者私有的资料变量,既安全又方便。但是你真的知道 Session 的运作原理吗?或许了解以后,你就再也不太敢使用这个令人又爱又恨的对象。 虽然转而替代之的方法稍嫌麻烦,但在长期考量之下,也就不得不这么做了。   首先来讲讲 Session 的好处,它可以用来记录客户端私有的资料变量,并且在时间范围内不会消失。这真的是很重要的功能,尤其是有会员的系统必须要用到的。像是会员的登入帐号、时间、状态以及许许多多该记录的实时数据﹝如购物系统记录使用者的购物篮内的商品﹞,这些信息属于各使用者私人所需要,通常开发者都是使用 Session 记录处理。   然而,在 ASP 中的 Session 是使用 Cookies 所构成,服务器将所有的 Session 内记录的资料,以 Cookies 的方式传至用户的浏览器。通常一般浏览器会将这些 Cookies 存起来,每当使用者点选连结,再次与服务器做联机时,浏览器就会把这些 Cookies 传回 Server 供做处理。这即是 Session 的运作原理,当资料量大一点时,由于必须传出去又收回来,不但吃线路频宽,效能相对降低,因为 Server 必须花费更多的资源在做联机处理和重新配置内存等初始动作。现在你可能会想『我必须用这功能,只好牺牲点了』,不过本文讲 Session 一方面是教导大家少用;另一方面当然是有替代办法,紧接着上场的,就是同属 Global.asa 内的 Application 对象。…

Form域中用Post提交容量大的数据

  以前在工作中遇到一个问题,当表单发送的数据量很大时,就会报错。查阅MSDN了解到,原因是微软对用Request.Form()可接收的最大数据限制为100K字节。   微软建议用Request.BinaryRead()读取表单数据,但由于这种方法读出的是二进制数据,需要对读出的数据逐字节进行分析,生成有意义的字符串(MSDN上的一段程序就是这样写的,但它并没有考虑诸如标点符号等转义字符需要进行特殊分析)。如果说这种方法对于纯英文系统勉强可用的话,则对于中文系统来说就有极大的麻烦,因为汉字是用两个字节表示的,而读出的二进制数据本身并不能判断是英文还是汉字(否则就不是二进制数据,而是字符串了^-^)。这样的话就必须了解汉字的编码规律才能进行分析。最后,即使算法上能把这些都分析出来,大家想想对于一个MB级的巨型字符串逐字节进行分析,其效率何如?所以,此路不通!   不过,办法总是有的。一开始我以为是整个表单数据的总和不能超过100KB,后来发现这是对表单内每个域的限制。问题的解决办法是,对于一个需要发送大数据的域,在提交表单前将数据拆分为小于限额的数份,分别放在数个hidden域中,同时把原有域清空,再正式提交表单。服务器端还是用Request.Form()读取各hidden域的数据,再按照顺序把他们拼接起来就行了。主要代码如下:…

网页中用隐藏帧来实现三个应用

  网页分帧(Frame)通常用来进行主页版面的组织和编排。实际上,巧妙应用分帧技术,还可以完成一些重要的功能。本文介绍利用隐藏帧来实现三个应用。   怎样把帧隐藏起来呢?笔者是通过把帧的高度(对于上、下分帧)设为 0 的办法来把帧隐藏起来的。隐藏以后的帧里面照样可以放置 html 文件,但在网页的整体版面上并不显示出来。本例中,笔者构造隐藏帧的 html 代码如下:               Please browse the web pages with IE4.x/5.x up browser.         其中,上部的隐藏帧命名为 hideframe,放置 hidefile.htm 文件。下部的帧放置网页的主文件。…

防止新闻系统里产生垃圾图片的方法

  现在的新闻系统里越多地支持在线上传插入图片,以实现在比较好的效果。可是问题也随之而来了,有的图片传上去后,发现这个图片不对,那只能在编辑器里把它删掉,或是在添加过程中系统出现问题,而导致垃圾图片的产生。 为了防止在这过程中出现垃圾图片和附件,许多人多研究了不少的方法,如动网论坛里,对上传的每一个文件,在数据库里都有相应的一个记录,这样要占用一个表来存放,并且如果在添加数据到数据库里时系统出现异常,也同样无法避免这些垃圾的产生。经过我的一些实践,研究出我的方法,现在贡献出来,供大家斧正。 我的方法流程是这样的:当文章的添加者登录到系统里面后,由系统给它创建一个临时的工作文件夹,如“editor”这个用户的ID是5那我建立一个temp5的临时工作目录,当他添加文章的时候,上传的图片和其它附件并不存入到真正要显示存放的目录,而是存在这个临时的工作目录里面。同时为了方便管理,我建议给每一条新闻建一个目录来存放这些图片,当文章提交的时候,由系统分析里面的图片地址,把文章里面有的图片转移到这些对应的目录里面去。   当新闻或文章改动的时候,就先把这个文件夹下面的所有图片转移到进入的时候的临时工作目录里面,同时对文章里面的图片路径进行替换,保存的时候也是和添加的时候执行同一个过程。当文章删除的时候,也相对应地把这个目录删掉,这就可以保证了在添加、修改、删除的过程中没有垃圾图片的产生。当用户登出的时候,系统可以将其所对应的工作目录删除,这样就可以彻底地作到没有垃圾的产生。…

保护个人隐私 拒绝网上邻居自作主张

  每次与局域网中的其他用户共享传输信息时,我们都需要打开网上邻居窗口,来寻找共享传输目标;然而在打开网上邻居窗口时,我们常发现它会自作主张地搜索局域网中的一些不相干内容,导致网上邻居窗口打开速度非常缓慢, 而且打开之后它还会自作主张地将最近的共享访问全部记录下来,导致我们的共享隐私不经意被泄露出去。为了有效保护共享隐私并让网上邻居打开速度更快,禁止它擅作主张就成了必然。   1.拒绝记录共享痕迹   凭借网上邻居的自动记忆功能,它会自作主张地将最近进行的共享访问连接保存下来,并自动显示在网上邻居窗口中,显然其他人通过网上邻居也能知道自己以前的共享隐私。为了避免自己的共享隐私让他人知道,大家可以按照如下步骤,来让“网上邻居”不自作主张:…