当前位置:首页 » 其他

图片的预先读取-加快下载速度

2006-09-04 15:17 本站整理 浏览(2)
本章主要讨论Cache和Preload---图片的预先调用。
为什么要对图片进行预先的调用?答案非常简单:为了速度。
你是否已经注意到了,一个以前曾经访问过的页面再次进入时速度会比以前快许多?这是因为页面中所有的图片都已经被“cached”了。
对于IE,在windows目录下的Temporary Internet Files的子目录内,对于 Netscape则是在一个叫做cache的子目录中,保存这你曾经浏览过的一些页面的HTML文档和图片。当你第一次浏览页面时这些资料写入cache以备今后的需要。下一次再光临时,则直接从硬盘的cache中读取资料,速度当然快多了。
下面的内容就跟javascript扯上关系了。
(1)并非所有的cache都是有利的,因为有时候你需要频繁地更新页面,或者再页面上放置了一些诸如计数器之类的动态脚本,你需要浏览时及时更新这些资料,并非从cache中读取旧的数据。那么,用下面的方法可以将页面cache屏蔽起来。
将如下代码加入HTML的<head>区即可。
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
(2)为了加快下载速度,可以将一些可能要使用的图片预先读取出来,那么当使用的时候就不必现下载了。尤其是制作onmouseover效果(例如:鼠标移动到一个按钮上产生按下或变色等效果)时,否则会有明显的延迟,效果就大打折扣了。
(3)预先读取图片的方法是比较简单的,用javascript这样实现。
将如下的类似代码放在HTML的<head>区:
<SCRIPT LANGUAGE="JavaScript">
<!--
Image1= new Image(100,50)
Image1.src = "image1.gif"
Image2 = new Image(100,50)
Image2.src = "image2.gif"
Image3 = new Image(100,50)
Image3.src = "image3.gif"
// -->
</SCRIPT>
这样浏览器在装载页面时就已经预先下载了3个图片(image1.gif,images2.gif和image3.gif)。当激发onmouseover事件时,浏览器直接从Cache中读取图片,速度当然快多了。
这里做一些小小说明:图片的名字可以是任意的,100和50分别是读入cache的图片的宽度和高度。但是脚本格式必须按照规定的格式写,"Image1=new Image"。如果图片在其它服务器的子目录内,只要用正确的绝对路径表示即可。
脚本可以放在HTML的任意位置,但是建议放在靠上的位置,在<head>区是最好的,因为它能保证最先被读取。
将需要预先被读取的所有图片都加入代码中,按格式写就可以了。
<------本节结束------>
作者:一克
作者主页:Java2000(http://java2000.126.net)
摘录日期:1999.9.10
注意:任何人转载该文章必须注明作者的主页即本文的出处