作为一个ASP程序员,你不会怀疑提高Web应用程序性能的重要性。为了让程序运行的更快一些,你可能一直忙于优化数据库或COM组件。如果这些你都做过了,你想到过靠加快最终生成HTML代码在浏览器中的显示速度来提高性能吗?对于最终用户来说,如果页面能显示的更快,你就能赢得更多的赞誉。
  提高HTML在浏览器中显示的速度可以通过一些鲜为人知的技术来实现。
  1.使用表格嵌套?
  在页面中建立复杂的结构,一般通过在页面中放置HTML表格来实现。如果要建立一个这样的页面:这个页面有一个顶部导航栏一个左边导航栏,一个右边的内容区。可以用一个两行两列的大表格来建立它。第一行中,合并两个列,然后插入一个顶部导航栏。第二行左边的列中,插入一个表格来显示导航按钮。右边的栏中,放置一个表格来实际内容。(见图一)这样嵌套的表格生成的代码是这样的:
  <TABLE BORDER="0">
  <TR>
  <TD COLSPAN="2"><!-- content for top nav bar --></TD>
  </TR>
  <TR>
  <TD ALIGN="LEFT" VALIGN="TOP"><!-- content for left nav bar --></TD>
  <TD ALIGN="LEFT" VALIGN="TOP"><!-- content for body of page --></TD>
  </TR>
  </TABLE>
  但是,实际上,浏览器找到<TABLE>标签的时候并不是立刻把页面显示到屏幕上,除非它找到相应的结束标签</TABLE>。所以,如果你的整个页面在一个表格里的话,在收到最后一个</TABLE>之前,什么也不会显示出来,这样,这个页面将在整个文件全部下载以后才能被用户所看到。在页面数据量比较大的时候(比如搜索引擎的搜索结果),这个特性会导致暂时的停顿。为了防止出现这种情况,可以在制作的时候把页面分成许多小的表格。在每一个<TABLE>到相应的</TABLE>这一部分HTML代码下载完的时候,浏览器就会把它显示出来。在访问者看来页面是渐渐的,一部分一部分,越来越多的出现在屏幕上的。感觉上,这样的页面显示速度比下载完整个文件再一次显示出来更快。
  按照这个原则来研究前面的例子,应该把页面中整个的大表分成三个单独的表。用第一个表显示顶部的导航栏,调节它的宽度,使它足够容纳所有的内容,在一个<TABLE></TABLE>代码段中完成它。页面下半部分,左边第二个表排成一列。使用第三个表容纳实际内容。(见图二)因为每一个部分都是一个完整的表格,所以,每一部分代码下载后都会立刻被显示出来。这样,顶部和左边的导航栏将比页面的其它部分更显显示出来。用户会在这个时候想象页面开始下载,很快就能显示在屏幕上。这样比起让用户在较长时间内一直面对一个空白屏幕要好得多。
  修改过的代码是这样的:
  <TABLE BORDER="0" WIDTH="100%">
  <TR>
  <TD ALIGN="CENTER" VALIGN="TOP"><!-- content for top nav bar --></TD>
  </TR>
  </TABLE>
  <TABLE BORDER="0" ALIGN="LEFT">
  <TR>
  <TD ALIGN="LEFT" VALIGN="TOP"><!-- content for left nav bar --></TD>
  </TR>
  </TABLE>
  <TABLE BORDER="0">
  <TR>
  <TD ALIGN="LEFT" VALIGN="TOP"><!-- content for page body --></TD>
  </TR>
  </TABLE>
  2.也要记住关闭其他的标记
  在上面的例子中,我们仅仅早一些关闭<TABLE>标记,就能让页面在浏览器显示的更快些。以此类推,还有一些类似的标记也有同样的特性。
  比如产生列表框和组合框<OPTION>标记和产生列表项的<LI>标记。通常,ASP程序员存取数据库,并把数据送入通过<OPTION>建立的列表框或组合框中,这时候在代码中写上一个关闭<OPTION>标记,这样简单的改变也能使页面在浏览器中显示的更快。
  不要使用这样的代码:
  Do while not objRS.EOF
  strOptionList = strOptionList & "<OPTION VALUE=""" & objRS("ID") &_""">"& _objRS("ProductName")
 objRS.MoveNext
  Loop
  Response.Write "<SELECT SIZE=""1"">" & strOptionList & "</SELECT>"

  要使用这样的代码:
  Do while not objRS.EOF
  strOptionList = strOptionList & "<OPTION VALUE=""" & objRS("ID") & _ """>" & objRS("ProductName") & "</OPTION>"
  objRS.MoveNext
  Loop

  Response.Write "<SELECT SIZE=""1"">" & strOptionList & "</SELECT>"

  不要使用这样的代码:
  <UL>
  <LI>Apples
  <LI>Oranges
  <LI>Bananas
  </UL>

  使用这样的代码:
  <UL>
  <LI>Apples</LI>
  <LI>Oranges</LI>
  <LI>Bananas</LI>
  </UL>

  现在看看,你的页面在浏览器中是不是显示的快了?
  请不要轻视这些改变对提高ASP程序性能的重要性。也许,在你能找到的“技巧与提示”一类的书或在线资料中,很少提到过通过优化HTML代码来使你的程序运行的更快。但是,在实际中应用这些技术,确实能使程序性能得到很大的提高。

加速ASP程序的显示速度相关推荐

  1. ASP程序中调用函数Now()显示上午下午的问题

    ASP程序中,调用函数Now(),显示的时间总是形如"2009-07-12 上午 08:12:56 "这样的,总显示"上午"和"下午",解决 ...

  2. Android的WebView控件载入网页显示速度慢的究极解决方案

    Android的WebView控件载入网页显示速度慢的究极解决方案 [转载来源自http://hi.baidu.com/goldchocobo/] Android客户端中混搭HTML页面,会出现虽然H ...

  3. 提高页面显示速度的秘技

    在安排Web页面的布局时,最常用的方法之一是用HTML表格界定页面的结构.例如,假设Web页面由顶端的导航条和它下面的两栏(列)构成--左边的列是一个导航条,右边的列是实际安置内容的区域.对于这样一个 ...

  4. android的webview控件载入网页显示速度慢的究极解决方案,【转】Android的WebView控件载入网页显示速度慢的究极解决方案...

    Android客户端中混搭HTML页面,会出现虽然HTML内容载入完成,标题也正常显示,但是整个网页需要等到近秒(甚至更多)时间才会显示出来.研究了很久,搜遍了国外很多网站,也看过PhoneGap的代 ...

  5. python找不到reshape_如何加速Python程序

    这次就说一种简单的方式来加速python计算速度的方法,就是使用numba库来进行,numba库可以使用JIT技术即时编译,达到高性能,另外也可以使用cuda GPU的计算能力来加速,对python来 ...

  6. ASP程序快速生成Excel文件

    ASP程序快速生成Excel文件 在一个web项目中,要求将数据生成Excel文件保存到本地,最早使用的方法是直接使用Microsoft的Office Web组件,但是总体感觉是慢(微软的通病).然后 ...

  7. Visual studio 中调试ASP程序、Javascript 代码 - 刘稻博客

    2019独角兽企业重金招聘Python工程师标准>>> PS: 1.在调试asp时,要先附加进程(附加到:自动:与具体调试网站对应的 dllhost.exe 或 w3wp.exe . ...

  8. 浅谈如何增强ASP程序性能

    Session在繁忙站点上使用时有几个缺陷.繁忙的意思是:站点上每秒有上百的页面被请求,或者同时有上千的访问用户.这个技巧对于那些要求水平扩展强 的站点非常重要,也就是指这些站点:它们利用多个服务器完 ...

  9. 网站安全之ASP程序加密解密方法全面解析

    如今,用ASP技术构建的网站随处可见.由于ASP脚本是在服务器上解释执行的(无法编译),因此你辛苦开发出来的ASP代码,很容易被人拷去任意修改,如何保护ASP源代码呢?这是每个ASP站长都会遇到的难题 ...

最新文章

  1. python __builtins__ credits类 (15)
  2. 微信浏览器 返回按钮二次返回
  3. 如何将iso文件安装到VirtualBox里的ubuntu去
  4. 华为鸿蒙系统真的好吗,鸿蒙系统真的成熟吗?华为还有很长的路要走
  5. Mysql 数据库表中有索引为什么还是查询慢?
  6. Spring框架学习3:bean元素属性
  7. [Ext JS 4] 实战之 带week(星期)的日期选择控件
  8. Android onTouchEvent方法
  9. usb启动计算机boss设置方法,技嘉主板bios设置usb启动(图文教程)
  10. 让Excel窗口保持在所有窗口前面
  11. uniapp 设置ios safri浏览器 添加到主屏幕 自定义图片及名称
  12. 少年派的奇幻漂流-对于日货轮出事故主人公侥幸得生后发生的事情。
  13. ie8打不开mysql登录_Win7下IE8无法打开https类型的网站解决方法笔记
  14. 线上tomcat服务器假死排查
  15. JavaOOP(面向对象)学习体会
  16. ubuntu修改用户名和home对应的目录名
  17. length,length(),size()详解及区别
  18. Python课程第十一天_下午_课程笔记(包和模块)
  19. 登录页-登录成功后的路由守卫
  20. 同质图,异质图以及属性图

热门文章

  1. 深入理解Objective-C:Category
  2. 访问图像中每个像素的值
  3. 对一道面试题的总结与扩展思考(关于一笔画问题的数学分析)
  4. python数据结构与算法(2)
  5. 类的继承定义一个computer类在此基础上派生出两个子类(继承与多态绑定)
  6. 怎么关闭左下角的GL VERTS
  7. 满纸荒唐言,一把辛酸泪--红楼一梦
  8. Ubuntu下编译内核
  9. epoll 使用详解
  10. 禁止ping入自己的主机