精彩专题推荐:建站之入门课 建站之必修课 建站之关键课 网站价值所在 流量提高专题 css+div 标准 个人网站打造全过程
返回建站学首页
导航:
建站首页 | 网站设计 | 网站开发 | 网站运营 | 网页软件 | 建站指南 | 搜索优化 | 图像处理 | 视频教程 | 书籍教程 | 建站专题
当前位置:首页>网站开发>ASP教程>正文

技巧:最大限度优化你的Asp程序的性能


来源:不详 时间:07-04-06 点击: 点击这里收藏本文

 

  〈!-- #include file="Header.asp" --〉
  〈!-- #include file="Footer.asp" --〉
  〈SCRIPT language="vbscript" runat="server"〉
  Sub Main()
  WriteHeader
  WriteBody
  WriteFooter
  End Sub
  Sub WriteBody()
  ...
  End Sub
  Main?'调用过程Main
  〈/SCRIPT〉

 

  假如你的脚本冗长的话,请使用Response.IsClientConnected。这意味着在客户端不再连接到服务器的时候,你的服务器CPU能避免循环等待。

 

  〈%
  '检查客户端是否仍在连接
  If Not Response.IsClientConnected Then
  '仍然连接着,处理程序
  Else
  '断开
  End If
  %〉

 

  Interspersing ASP and HTML

  每个人都这样做?当我们输出表格的时候,我们会在ASP 和HTML代码间转换,而这是一个不好的习惯。例如:

 

  〈HTML〉
  〈BODY〉
  〈%
  Set MyConn = Server.CreateObject("ADODB.Connection")
  MdbFilePath = Server.MapPath("sample.mdb")
  MyConn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";"
  SQL_query = "SELECT * FROM Friends"
  Set RS = MyConn.Execute(SQL_query)
  WHILE NOT RS.EOF
  %〉
  〈LI〉〈%=RS("Name")%〉: 〈A HREF=""〉Homepage〈/A〉
  〈%
  RS.MoveNext
  WEND
  %〉
  〈/BODY〉
  〈/HTML〉

 

  另一个普遍的例子是使用IF语句的时候:

 

  〈%
  If Not Session("DBOpen") Then
  %〉
  〈H1〉Database not connected〈/H1〉
  〈%
  Else
  %〉
  〈H1〉Database open〈/H1〉
  〈%
  End If
  %〉

 

  在这些情况下,脚本性能能通过将服务器端脚本写到一起来,而用Response.write产生Html代码来提高性能。比如:

 

  〈%
  If not Session ("DBOpen") Then
  Response.Write "〈H1〉Database not connected〈/H1〉"
  Else
  Response.Write "〈H1〉Database open〈/H1〉"
  End If
  %〉

 

  在大的脚本和很多脚本的情况下,你将能看到性能的提高。注意这里尽量避免了使用〈%标记,这样就能提高性能,ASP不需在执行脚本的时候计算字符的Ascii码。

  Session状态

  无庸置疑地,在Asp中能够通过Session维持某个状态的能力是十分强大的特色。然而,它会影响你的性能。明显地,你的站点的可伸缩性性变成了另一个问题,如果限制Session的使用的话。然而,session会为每个用户消耗服务器资源。

  如果你不使用session 变量,或事实上你不必使用?使用隐藏表单域,在数据库中保存数据,查询字符串是不是其中的窍门?所以你应该禁止Session状态。你可以使用下面的声明禁止使用session:

  @EnableSessionState = False

  这样,ASP将不再检查session信息。

  如果你不得不依赖于session状态,应该避免在session对象中存放大量的数据。IIS中的session在客户端的HTTP cookie可用的时候就会保持,导致被session占用的内存在session 终止或超时前一直被占用。这样,如果很多用户同时使用你的程序的时候,你的服务器资源可能会耗尽。

  数据库访问

  数据库访问是必须的麻烦?访问数据库将会激烈地减慢你的程序,但很显然,如果没有数据库,很多站点将变得毫无价值可言。但通过存储过程访问数据库来代替使用嵌入式Sql 语句,你可以提升潜在的性能。通过使用存储过程和ActiveX Data Objects (ADO),它们亦同样拥有良好的灵活性。尽可能从存储过程来输出数据。

  确认你的数据库具有索引,因为这样能直接提高你的程序的效率。同样,尽量在你的数据库服务器运行更新统计(Update Statistics) 以帮助追踪你的数据分发,这样,你的数据库就能够基于这些信息来改造查询执行。注意一些数据库比如MS Access,是不是真正能在企业级程序中接受?SQL Sever 7.0或者Oracle是一个更好的赌注。

  让SQL象它被设计的那样工作,它能count(统计),连接(join),排序(sort)和group 数据。当你能够写出一个查询语句来做这些东西的时候,就不要自己用其它语言来实现。

  下面是一个统计所有列的最简单的语法:

  SELECT count(*) FROM publishers WHERE state='NY'

  如果你统计一个指定的列,你必须使用group by语句来分组该列,否则它不会工作:

  SELECT count(city),city FROM publishers GROUP BY city

  分类返回的数据:

  SELECT * FROM TableName WHERE FieldName〉50 OR FieldName〈100 ORDER BY FieldName2, Field Name3

  使用Odbc还是文件DSN连接数据库?使用快速的OLEDB Provider技术连接你的数据库而不是使用DSN连接。不再需要恳求你的ISP(或数据库管理员/网管)为你建立一个系统DSN,当你移走Web文件的时候,亦不需要改变配置。

9 7 3 1 2 3 4 8 :

  把此文章收藏到:          
广而告之
文章搜索
  • Google JZxue.Com

关于我们 | 联系我们 | 友情链接 | 网站地图
Copyright © 2005 - 2006 建站学 All rights reserved.