提供效率的几个ASP编程技巧

来源:CSDN 时间:2010-05-03 11:11:00 

严格控制Session

可以将不需要Session的内容(比如帮助画面,访问者区域,等等)移动到关闭Session的独立ASP应用程序中。在基础页面上,可以给ASP一个指示,让它不需要使用Session。将下面的代码直接加入到ASP页面的头部:
  
<%@EnableSessionState=False%>
在Web服务器上缓存经常使用的数据
典型的情况是:ASP页面从后台存储中取回数据,然后以超文本标记语言(HTML)的形式形成结果。不管数据库的速度如何,从内存中取回数据要比从后台存储设备中快得多。从本地硬盘读取数据通常也非常快。所以,提高性能可以通过缓存服务器上的数据来实现,无论是将数据缓存在内存中,或者本地硬盘中。 
缓存是经典的“空间换时间”的折中方式。如果缓存得恰当,就可以看到显著的性能提升。为了让缓存有效,必须保证缓存数据是经常要重用的,而且也是计算起来繁琐的。装满陈旧数据的缓存是对内存的浪费。
不经常改变的数据是缓存的较好对象,因为不需要随时考虑这些数据更新后的同步操作。组合框、参考表格、DHTML代码、扩展标记语言串、菜单以及站点配置变量(包括数据源名字,Internet协议地址IP以及Web路径)都是很好的缓存对象。注意:要缓存数据表达式而不是数据本身。如果一个ASP页面经常变化并且很费力去缓存(比如整个产品目录),就要考虑预产生HTML,而不是每次发生请求时再描述它。
在Application或Session对象中缓存经常使用的数据
ASP中的Application和Session对象是在内存中缓存数据的便利容器。你可以将数据赋值给Application和Session对象,这些数据在HTTP调用期间将一直保持在内存中。Session中的数据是为每一个用户服务的,Application中的数据是所有用户共享的。
何时需要在Application和Session中装入数据?通常,当应用程序启动或者会话开始时,数据就被装入了。为了在这时装入数据,在Application OnStart()或者Session OnStart()中分别添加适当的代码。这些函数位于文件Global.asa中,如果原来不存在,就添加上。也可以在数据首次需要的时候调入,在ASP页面中添加代码,检查数据是否存在,如果没有发现,就调入它。这里有一个例子,它代表了被称为“lazy evalution”的经典性能处理技术:直到需要,再去计算。 
拷贝经常使用的数据到脚本变量中
在ASP中存取COM对象时,应该拷贝经常使用的对象数据到脚本变量中,这样就减少了对COM对象的方法调用。这些调用要比存取脚本变量相对来说费时费力。当存取Collection和Dictionary对象时,使用这项技巧也减少了昂贵的查找操作。
通常,如果要不止一次地存取对象数据,就应将数据放入脚本变量中,对象数据主要也就是Request变量(表单和查询字符串变量)。比如,站点要传递一个叫做UserID的查询字符串变量,假设它将在一个特殊页面被引用12次,那么不需要调用Request("UserID")12次,只要在ASP页面的头部分配给UserID一个变量,然后在页面中使用它,这样做就节省了11次COM方法的调用。
在任何可能时使用Server.Transfer,而不要用Response.Redirect
Response.Redirect告诉浏览器请求另一个不同的页面,这常常用于引导用户到登录页面或者出错处理页面。由于重定向强迫了一个新页面请求,结果是浏览器必须要与Web服务器循环2次,并且Web服务器必须处理一个额外的请求。Server.Transfer执行在同一服务器上的页面传输,这将避免额外的浏览器-Web服务器的数据循环,形成良好的系统性能,对于用户也有较好的响应时间。当然Server.Transfer只支持相对路径(即站内使用)。

标签:asp,编程,效率
0
投稿

猜你喜欢

  • 浅谈Python单向链表的实现

    2023-01-18 14:00:39
  • 使用K.function()调试keras操作

    2022-08-03 05:07:31
  • 深入浅析Pytorch中stack()方法

    2021-12-26 01:40:08
  • Python 实现文件读写、坐标寻址、查找替换功能

    2021-06-02 07:36:42
  • Python判断变量是否是None写法代码实例

    2021-08-24 12:21:09
  • Django实现单用户登录的方法示例

    2021-12-21 03:26:41
  • 基于python时间处理方法(详解)

    2022-01-08 08:38:30
  • python使用selenium打开chrome浏览器时带用户登录信息实现过程详解

    2023-07-19 05:00:37
  • 用于统计项目中代码总行数的Python脚本分享

    2022-05-11 17:37:11
  • 浅谈anaconda python 版本对应关系

    2023-12-06 01:02:35
  • python3 使用openpyxl将mysql数据写入xlsx的操作

    2024-01-25 14:58:23
  • javascript 使用sleep函数的常见方法详解

    2024-04-22 13:00:08
  • Python中的chr()函数与ord()函数解析

    2021-10-21 13:19:26
  • MySQL分区之RANGE分区详解

    2024-01-19 09:24:20
  • javascript 通用滑动门tab类

    2023-08-05 09:42:25
  • Python 等分切分数据及规则命名的实例代码

    2023-03-26 05:01:17
  • python光学仿真学习wxpython创建手速测试程序

    2023-12-06 20:57:28
  • python实用的快捷语法技巧大全

    2022-12-11 11:33:35
  • Python3.8对可迭代解包的改进及用法详解

    2021-01-08 05:55:05
  • mysql 5.7.13 安装配置方法图文教程(linux)

    2024-01-27 20:46:37
  • asp之家 网络编程 m.aspxhome.com