技巧之一:提高使用Request集合的效率
访问一个ASP集合来提取一个值是费时的、占用计算资源的过程。因为这个操作包含了一系列对相关集合的搜索,这比访问一个局部变量要慢得多。因此,如果打算在页面中多次使用Request集合中的一个值,应该考虑将其存贮为一个局部变量。例如将代码写成下面的形式以加快脚本引擎处理速度:
strTitle=Request.Form("Title") strFirstName=Request.Form("FirstName") strLastName=Request.Form("LastName") If Len(strTitle) Then strTitle=strTitle & " " If strFirstName="" Then strFullName=strTitle & " " & strLastName Elseif Len(strFirstName)=1 Then strFullName=strTitle & strFirstName & ". " & strLastName Else strFullName=strTitle & strFirstName & " " & strLastName End If
技巧之二:直接访问适当的集合
如果不是别无选择,否则不要使用strPage=Request("page")的这样的形式来获取参数,因为这将按顺序搜索全部的集合QueryString、Form、Cookies、ClientCertificate、ServerVarible直到发现第一个匹配值的名称。这样做比直接访问适当的集合效率低,并且是不安全的,除非能绝对保证这个值不会出现在另外一个集合中。
例如,可能希望搜索满足客户请求的WEB服务器名称,这通过出现在每个查询中的Request.ServerVarables集合中寻找“SERVER_NAME”来实现。然而,假如其他的集合也包含名为“SERVER_NAME”的值(键名不区分大小写),当使用Request("server_Name")时,就会得到错误的结果。总而言之,应尽可能直接访问适当的集合。
技巧之三:在费时操作前使用Response.IsClientConnected属性
使用Response.IsClientConnected是观察用户是否仍连到服务器并正在载入ASP创建的网页的有用方式。如果用户断开连接或停止下载,我们就不用再浪费服务器的资源创建网页,因为缓冲区内容将被IIS丢弃。所以,对那些需要大量时间计算或资源使用较多的网页来说,值得在每一阶段都检查游览者是否已离线:
…… Code to create first part of the page If Response.IsClientConnected Then Response.Flush Else Response.End End If …… Code to create next part of page
技巧之四:优化ASP中的ADO操作
通常面言,数据构成了WEB站点的实际内容。所以,优化ADO操作以加速ASP代码执行,十分有用:
a. 仅选择所需的列:当打开ADO记录集时,除非需要获得所有的列,否则不应自动地使用表名(即SELECT *)。使用单独的列意味着将减少发送到服务器或从html" target="_blank">服务器取出的数据量。即使需要使用全部列,单独地命名每个列也会获得最佳的性能,因为服务器不必再解释这些列的名字。
b. 尽可能的使用存储过程。存储过程是预先编译的程序,含有一个已经准备好的执行计划,所以比SQL语句执行更快。
c. 使用适当的光标和锁定模式。如果所做的全部工作只是从记录集中读取数据,并将其显示在屏幕上,那么就使用缺省的只能前移、只读的记录集。ADO用来维护记录和锁定的细节的工作越少,执行的性能就越高。
d. 使用对象变量。当遍历记录集时一个肯定能提高性能的方法是使用对象变量指向集合中的成员。例如:
While Not RsGc.EOF Response.Write "工程名称:" & RsGc("GcMC") & "(工程代码:" & RsGc("GcCode") & ") " RsGc.MoveNext Wend
可以用改写为下面的代码以加快执行:
set GcMc=RsGc("GcMc") set GcCode=RsGc("GcCode") While Not rsGc.EOF Response.Write "工程名称:" & GcMc & "(工程代码:" & GcCode & ") " RsGc.MoveNext Wend
新的代码建立了对象变量的引用,所以可以使用对象变量而不是实际的变量,这意味着脚本引擎的工作减少了,因为在集合中进行索引的次数变少了。
技巧五:不要混用脚本引擎
我们知道,ASP页面中既可以使用VBScript,也可以使用JScript。但是在同一个页面上同时使用JScript和VBScript则是不可取的。因为服务器必须实例化并尝试缓存两个(而不是一个)脚本引擎,这在一定程度上增加了系统负担。因此,从性能上考虑,不应在同一页面中混用多种脚本引擎。
以上就是ASP提速的五大技巧,通过学习这五大技巧可以加速网站打开的速度。
主要内容:基础语法,表单和用户输入,ASP Cookies,引用文件,Global.asa,Session 对象,Application 对象,Response 对象,Request 对象,Server 对象来自小牛知识库的 ASP 快速参考。打印出来,放入口袋,以备随时使用。 基础语法 ASP 脚本由 <% 和 %> 包围。向浏览器写输出: <html> <body> <% response.write("Hello World!") %> </body> </html> ASP 中的默认语言
Application 对象 集合: Contents StaticObjects 方法: Lock Unlock 事件: Application_OnEnd Application_OnStart ObjectContext 对象 方法: SetAbort SetComplete 事件: OnTransactionAbort OnTransactionCommit Request 对象 集合:
大家可否知道,其实查找中有一种O(1)的查找,即所谓的秒杀。 哈希查找: 对的,他就是哈希查找,说到哈希,大家肯定要提到哈希函数,呵呵,这东西已经在我们脑子里面形成 固有思维了。大家一定要知道“哈希“中的对应关系。 比如说: ”5“是一个要保存的数,然后我丢给哈希函数,哈希函数给我返回一个”2",那么此时的”5“ 和“2”就建立一种对应关系,这种关系就是所谓的“哈希关系”,在实际应用中也就形成了”
本文向大家介绍mysql技巧:提高插入数据(添加记录)的速度,包括了mysql技巧:提高插入数据(添加记录)的速度的使用技巧和注意事项,需要的朋友参考一下 问题描述: 普通台式机,采集数据,表中已经有>1000万数据量。 采集回来的数据插入表中的时候很慢,每条约100毫秒。 解决方法: 1、加大mysql配置中的bulk_insert_buffer_size,这个参数默认为8M bulk_inse
问题内容: 我有一个从java.awt.Component扩展的JPictureBox,请参见此处的代码http://pastebin.com/SAJc6Sht。但是,只有在没有图像拉伸的情况下,它才能很好地工作。特别是对于大局而言,它会极大地减慢程序速度。如何提高JPictureBox的大图绘制速度? 问题答案: 基本上,您希望将图像的缩放卸载到后台线程,缩放很耗时,并且您不想在事件调度线程的上
这部分文档展示了一些 Jinja2 模板的提示和技巧。 Null-Master 退回 Jinja2 支持动态继承并且只要没有 extends 标签被访问过,就不分辨父模板和子模 板。而这会导致令人惊讶的行为:首个 extends 标签前的包括空白字符的所有东西 会被打印出来而不是被忽略,这也可以用作一个巧妙的方法。 通常,继承一个模板的子模板来添加基本的 HTML 骨架。而把 extends 标签