HTML-加速、再加速
来源:互联网 发布:软件二次开发是什么 编辑:程序博客网 时间:2024/05/16 00:52
======================================================
注:本文源代码点此下载
======================================================
web开发人员是否必须掌握复杂的组件技术才能加快html页面的访问速度?答案是:不一定!实际上,有许多关于html与dhtml方面的技巧,它们原理简单而且上手容易。无论是技术高超的老手,还是初涉编程的菜鸟,领会这些都十分必要。
明显html,暗渡"公用脚本"
减少web页面下载时间的关键就是设法减小文件大小。当多个页面共用一些成分内容时,就可以考虑将这些公用部分单独分离出来。比如:我们可以将多个html页面都用到的脚本程序编写成独立存在的.js文件,然后再在页面中按如下方式调用它:
这样,公用文件只需要下载一次,然后就进入缓冲区。等下次再次调用包含公用文件的html页面时,下载时间明显减少。
让样式表内容进入地下工作
css是html装扮器,一个漂亮的web页面不可能没有它。html页面中有多种引用css的方法,不同的方法导致的效率也不一样。通常,我们可以将定义于间的样式控制代码提取出来,保存到单独的.css文件中,然后在html页面中以标记或者@import标记的方式进行引用:
请注意2点:1、.css文件中无需包括标记;2、@import和link标记要定义在html页面的head部分。
宝贵内存节省两法
尽量减少html页面占用的内存空间是加快页面下载速度的一个有效方法。在这方面,有2个需要注意的问题:
1、使用同一种脚本语言
html页面离不开脚本程序的支持,我们经常会在页面中嵌入多种脚本语言,比如javascript与vbscript。但是,不知你发觉没有:这样的混合使用减慢了页面的访问速度。原因在于:要解释并运行多种脚本代码,就必须在内存中装载多种脚本引擎。所以,请尽量在页面中使用同一种脚本语言编写代码。
2、巧用iframe
你使用过标记吗?它可是一个非常美妙的功能。如果要在一个html文档中包含第2个页面的内容,通常的方法是使用标记。但是有了,一切变得简单了。比如,开发一个文档预览页面,可以在左边放置一系列主题,在右边放置一个iframe,其中包含要预览的文档;当鼠标掠过左边的每一个主题链接时,就在右边建立一个新的iframe以预览文档。这样做,代码效率无疑是高效的,但同时导致了繁重的处理过程,最终是缓慢的速度。
没关系,我们有办法:只使用单一的iframe。当鼠标指向一个新主题时,只需要修改iframe元素的src属性即可。这样,任何时间内只会有一个预览文档保留在内存。
择优选用动画定位属性
每天上网浏览页面,你一定会看到许多动画效果。比如,一个可爱的小兔子在页面上来回地走动
...
实现这个效果的核心技术就是ccs定位。通常,我们是使用element.style.left和element.style.top2个属性来达到图形定位的目的。但是,这样做会产生一些问题:left属性返回一个字符串,并且其中包含了度量单位(比如100px)。因此,要设定新的位置坐标,就必须首先对这个字符串返回值进行处理,然后才能赋值,象下面一样:
dim stringleft, intleft
stringleft = element.style.left
intleft = parseint(stringleft)
intleft = intleft + 10
element.style.left = intleft;
你一定会感觉做这么点事情竟要编写这么复杂的代码,是否有更简洁的方法?当然有!请看这4个属性:posleft、postop、poswidth
和
posheight,它们对应于相应字符串返回值的点数数值。好了,使用这些属性重新编写代码实现上面代码实现的功能:
element.style.posleft += 10
代码短小、速度却更快!
循环控制多个动画
说到制作动画效果,当然离不开定时器的运用。通常的方法就是使用window.settimeout来不断地定位页面上的元素。但是,如果页面上有多个动画要显示,是不是就要设定多个定时器呢?答案是no!原因很简单:定时器功能将消耗掉大量宝贵的系统资源。可是我们仍能在页面上控制多个动画,技巧就是使用一个循环。在循环中根据不同的变量值控制相应动画的位置,整个循环中只使用一个window.settimeout()函数调用。
visibility快于display
让图画时隐时现会创造很有趣的效果,有2种方法可以实现这个目的:使用css的visibility属性或者display属性。对于绝对位置元素,diaplay和visibility具有同样的效果。两者的区别在于:设置为display:none的元素将不再占用文档流的空间,而设置为visibility:hidden的元素仍然保留原位置。
但是如果要处理绝对位置的元素,使用visibility会更快。
从小处着手
编写dhtml网页的一个重要提示是:从小处着手。初次编写dhtml页面时,一定不要试图在页面中使用你了解到的全部dhtml功能。每次可以只使用一个单一的新特征,并且仔细地观察由此产生的变化。如果发现性能有所下降,就可以快速地找到为什么。
脚本的defer化
defer是脚本程序强大功能中的一个"无名英雄"。你可能从没有使用过它,但是看完这里的介绍后,相信你就离不开它。它告诉浏览器script段包含了无需立即执行的代码,并且,与src属性联合使用,它还可以使这些脚本在后台被下载,前台的内容则正常显示给用户。
最后请注意两点:
1、不要在defer型的脚本程序段中调用document.write命令,因为document.write将产生直接输出效果。
2、而且,不要在defer型脚本程序段中包括任何立即执行脚本要使用的全局变量或者函数。
保持同一url的大小写一致性
我们都知道unix服务器是大小写敏感的,但是你知道吗:internet
explorer的缓冲区也是区别对待大小写字符串的。因此,作为web开发者,一定要记住保持相同链接的url字符串在不同位置的大小写的一致性。否则,就会在浏览器的缓冲区中存放同一位置的不同文件备份,也增加了下载同一位置内容的请求次数。这些都无疑降低了web访问效率。所以请谨记:同一位置的url,在不同页面中请保持url字符串的大小写一致性。
让标记有始有终
自己编写或者查看他人的html代码时,我们一定都遇到过标记有头无尾的情况。比如:
有头无尾标记举例
第一个
第二个
第三个
很明显,上面的代码中缺少三个结束标记。但是这并不妨碍它的正确执行。在html中,这样的标记还有一些,例如frame、img和p。
可是请不要偷懒,请将结束标记写完整,这样做不仅使html代码格式规范,更可以加速页面的显示速度。因为internet
explorer将不会花费时间判断和计算段落或者列表项目在哪里结束。
有头有尾标记举例
第一个
第二个
第三个
ok,以上列举了有关加速html页面的10个处理技巧,描述这些很简单,但是只有真正领会并掌握其中的本质,并且举一反三,才会编写出更快、更好的程序。
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
- HTML-加速、再加速
- HTML-加速、再加速
- HTML-加速、再加速
- HTML-加速、再加速
- HTML-加速、再加速
- HTML-加速、再加速
- HTML-加速、再加速
- HTML-加速、再加速(上)
- 加速加速再加速
- 最基本的HTML表格格式,border,再加一点简单的css
- 强制打开ReadyBoost 为Vista系统再加速
- 加速页面显示 压缩html js css
- 加速
- Emmet基本语法学习及HTML缩写加速
- 可以加速HTML页面的10个处理技巧
- 加油 加油 再加油
- 关于sizeof,再加一篇
- 再加班要疯了
- java7新特性(1)
- ASP.NET AJAX Extensions 学习笔记之下载安装
- Ajax杂谈
- IPSEC流程例子及两个阶段的协商过程详细介绍
- 请问你看完这个有何感想?关于Delphi中的类型转换??
- HTML-加速、再加速
- HTML DOM Event 对象
- 微软出的AJAX控件的安装(转载)
- html调outlook直接送form到指定mail
- Delphi中的消息处理
- 16个精美的 HTML5 作品集网站设计案例
- html——黑体、斜体、下划线及删除线
- 【转】重温java之classloader体系结构
- Javascript陷阱