提高网页加载显示速度的方法
作者:仙人掌工作室 来源:yesky 发布时间:2007-08-10 13:17:00
在安排Web页面的布局时,最常用的方法之一是用HTML表格界定页面的结构。例如,假设Web页面由顶端的导航条和它下面的两栏(列)构成——左边的列是一个导航条,右边的列是实际安置内容的区域。对于这样一个页面,我们可以用一个两行、两列的大表格进行布局:在第一行中,合并两个列然后放上顶端导航表格;在第二个行中,左边的列放上一个显示导航按钮的表格,右边的列再用一个表格显示页面的实际内容。用这种表格嵌套表格的方法进行布局可以得到非常好的效果。
要制作出这种页面,我们可以使用如下HTML代码:
< TABLE BORDER="0" >< TR > < TD COLSPAN="2" >< !-- 顶端导航条的内容 -- >< /TD >< /TR >< TR > < TD ALIGN="LEFT" VALIGN="TOP" >< !-- 左边导航条的内容 -- >< /TD > < TD ALIGN="LEFT" VALIGN="TOP" >< !-- 页面内容区域 -- >< /TD >< /TR >< /TABLE >
如果浏览器发现页面中有一个TABLE标记,在接收到对应的结束标记< /TABLE >之前它不会显示这个表格。因此,如果整个页面都放入了一个大表格中,在浏览器下载这个大表格的< /TABLE >标记之前整个页面都不会显示。当显示内容非常多的页面时(例如,搜索结果或者电子商务网站上的产品目录),表格的延迟显示会导致整个页面显示的停顿。
为了避免出现这种情况,我们应该把页面划分成多个较小且独立的表格区域。这样的话,每个表格的HTML代码下载之后浏览器就可以立即显示它。对于浏览者来说,页面将在屏幕上一部分、一部分地逐渐显示出来。而且更重要的是,这种页面在屏幕上开始显示的速度要比前面等待整个页面下载才显示的方法快得多。
对于前面介绍的例子,我们不是使用单个大表格进行页面布局,而是使用三个独立的表格:第一个表格显示页面顶端的导航条,使其具有足够的宽度显示页面内容并完整地给出其< TABLE >< /TABLE >标记对;在第一个表格的左下位置安排第二个表格,使这个表格向左对齐;最后一个表格位于第二个表格的右边,用于放置页面内容。由于现在每一部分都是一个独立的表格,浏览器只要下载了任一部分的代码就会立即显示它。因此,页面顶端和左面的导航条将比页面其余部分更快地显示出来。这就避免了让浏览者长时间地在空白页面前等待,而是给了他这样一种印象:页面已经开始下载,整个页面将立刻出现在屏幕上。
修改后的布局代码如下所示:
< TABLE BORDER="0" WIDTH="100%" >< TR > < TD ALIGN="CENTER" VALIGN="TOP" >< !-- 顶端导航条的内容 -- >< /TD >< /TR >< /TABLE >< TABLE BORDER="0" ALIGN="LEFT" >< TR > < TD ALIGN="LEFT" VALIGN="TOP" >< !-- 左边导航条的内容 -- >< /TD >< /TR >< /TABLE >< TABLE BORDER="0" >< TR > < TD ALIGN="LEFT" VALIGN="TOP" >< !-- 页面内容区域 -- >< /TD >< /TR >< /TABLE >
正如尽可能早地关闭TABLE标记使得浏览器能够快速地显示出表格中的数据,还有另外两个标记也同样可以用这种方法提高显示速度,这两个标记就是用于制作列表框的< OPTION >标记和用于制作无序列表的< LI >标记。
ASP程序员常常要访问数据库获取数据然后用< OPTION >标记构造列表框。只要简单地改动一下代码关闭< OPTION >标记,就可以让浏览器显示页面的速度加快。
例如,原先使用下面的代码:
Do while not objRS.EOFstrOptionList = strOptionList & "< OPTION VALUE=""" & objRS("ID") & _ """ >" & objRS("ProductName") objRS.MoveNextLoopResponse.Write "< SELECT SIZE=""1"" >" & strOptionList & "< /SELECT >"
现在只需改动一行代码:
Do while not objRS.EOF strOptionList = strOptionList & "< OPTION VALUE=""" & objRS("ID") & _ """ >" & objRS("ProductName") & "< /OPTION >" objRS.MoveNextLoopResponse.Write "< SELECT SIZE=""1"" >" & strOptionList & ""
如果原来使用的代码如下:
< UL > < LI >苹果 < LI >桔子 < LI >香蕉< /UL >
那么现在改用:
< UL > < LI >苹果< /LI > < LI >桔子< /LI >< LI >香蕉< /LI >< /UL >
经过这些改动之后,浏览器显示页面的速度将会更快。
猜你喜欢
- 导语哈喽!大家好,我是木木子。今日游戏更新系列来啦,是不是很想知道今天的游戏是什么类型的?立马安排上——随着年纪的不断上升,我们开始丢三落四
- 事务是由一步或几步数据库操作序列组成逻辑执行单元,这系列操作要么全部执行,要么全部放弃执行。程序和事务是两个不同的概念。一般而言:一段程序中
- 前言在java中,反斜杠“\”转义是“\”,因此表示一个“\”要使用“\\”,如果是正则表达式,那么表示一个“\”需要用“\\\\”,在my
- 在CSS中我们会经常要用到“清除浮动”Clear,比较典型的就是clear:both;CSS手册上是这样说明的:该属性的值指出了不允许有浮动
- 昨天去面试,百度题果然不一样,笔试我就蒙了,现在能记住两道题,笔试:1、title和alt 区别2、三列布局 左边裂固定宽度左对齐,右边列固
- 前言python中有一个非常有用的语法叫做生成器,所利用到的关键字就是yield。有效利用生成器这个工具可以有效地节约系统资源,避免不必要的
- 一、进程与线程进程是操作系统资源分配的基本单位,是程序运行的实例。例如打开一个浏览器就开启了一个进程。线程是操作系统调度到CPU中执行的基本
- 本文实例讲述了Python计算一个文件里字数的方法。分享给大家供大家参考。具体如下:这段程序从所给文件中找出字数来。from string
- python五子棋原创算法,供大家参考,具体内容如下我们都见过五子棋,但是在我看来五子棋单机游戏中,逻辑赢法很重要,经常用到的算法是五子连珠
- 检查 MySQL 数据库的启动时间Linux 系统中的 systemd 和 mysqld_safe 会在 mysqld 进程 crash 后
- 本文实例讲述了PHP函数extension_loaded()用法。分享给大家供大家参考。具体分析如下:extension_loaded —
- 近期公司准备开发一个计费项目,数据库当然还是选用我最信赖的Oracle了。由于一部分基础数据在一台Win2000 Server的S
- 如下所示:import datetime #获取两个日期间的所有日期 def getEveryDay(begin_date,end_date
- 基于OpenCV实现拼图版小游戏,供大家参考,具体内容如下效果展示实现思路1.对图像进行分割,分割成m*n个子图2.打乱子图的顺序3.将子图
- 首先,让我们介绍一下什么是pytorch,它是一个基于Python的开源深度学习框架,它提供了两个核心功能:张量计算和自动求导。张量计算张量
- typeof都返回object在JavaScript中所有数据类型严格意义上都是对象,但实际使用中我们还是有类型之分,如果要判断一个变量是数
- 本文实例讲述了php与javascript正则匹配中文的方法。分享给大家供大家参考,具体如下:php中正则匹配utf-8中文: (重点是:[
- 昨天给公司服务器重做了一下系统,遇到Asp附件无法上传,之前服务器上使用好好的,怎么重做了就不正常了,于是一番google,baidu,下面
- 可以任意转载,但转载时必须标明原作者charlee、原始链接http://tech.idv2.com/2008/11/03/python-m
- 本文介绍了python OpenCV学习笔记实现二维直方图,分享给大家,具体如下:官方文档 – https://docs.opencv.or