预装载以及javascript Image()对象

2016-01-29 11:34 6 1 收藏

预装载以及javascript Image()对象,预装载以及&#106avascript Image()对象

【 tulaoshi.com - Javascript 】

 

    大量采用高解析度的图像的确可以让一个Web站点容光焕发。但同样也会造成站点访问速度下降——图片是文件,文件就要占用带宽,而带宽直接同访问等待时间相关。现在,让我们来学习一种名为图像预装载(image preloading)的小技巧来提高图像访问速度。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/javascript/)

    一些浏览器试图通过在本地缓存中保存这些图片来解决此问题。这样一来可以顺序调用这些图片——但对于首次使用这些图片的时候仍然会存在延时。预装载就是一种在需要图片之前就将图片下载到缓存的技术。采用这样的方式可以使当确实需要显示图片时迅速将其从缓存中恢复回来并立即显示。

Image()对象
最简单的图像预装载办法是使用JavaScript新建一个新的Image()对象,然后将希望预装载的图片URL传递给此对象。假设我们拥有一个名为heavyimagefile.jpg的图片文件,我们希望当用户鼠标指针移动到一张已有的图片上时显示此文件。为了能更快的对此文件进行预装载,我们简单的创建了一个名为heavyImage的新Image() 对象,然后将其通过onLoad()事件句柄同步装载到页面上。

<html

<head

<script language = "JavaScript"

function preloader()

{

     heavyImage = new Image();

     heavyImage.src = "heavyimagefile.jpg";

}

</script

</head

<body onLoad="javascript:preloader()"

<a href="#" onMouseOver="javascript:document.img01.src="http://img.jcwcn.com/attachment/portal/jcwcj/2005-12/10/05121012262986974.jpg""

<img name="img01" src="http://img.jcwcn.com/attachment/portal/jcwcj/2005-12/10/05121012262978688.jpg"</a

</body

</html


    注意,图片的标签(tag)本身并不处理onMouseOver()以及onMouseOut()事件,这也正是上面示例中的<img标签被包括在<a标签中的原因。标签<a则包括了对这些事件类型的支持。

通过数组(arrays)装载多个图片

在实际情况中,你很有可能需要预装载不止一张的图片;比如,对于包括多个图片的菜单条,或者希望实现平滑的动画效果。要实现这些并不困难,只需要利用JavaScript的数组,如下例所示:

<script language="JavaScript"

 
 
function preloader()

{

     // counter

     var i = 0;

     // create object

     imageObj = new Image();

     // set image list

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/javascript/)

     images = new Array();

     images[0]="image1.jpg"

     images[1]="image2.jpg"

     images[2]="image3.jpg"

     images[3]="image4.jpg"

     // start preloading

     for(i=0; i<=3; i++)

     {

          imageObj.src="http://img.jcwcn.com/attachment/portal"JavaScript"

// create an image object

objImage = new Image();

   

// set what happens once the image has loaded

objImage.onLoad=imagesLoaded();

    

// preload the image file

objImage.src="http://img.jcwcn.com/attachment/portal/jcwcj/2005-12/10/05121012262950431.gif";

// function invoked on image load

function imagesLoaded()

{   

来源:http://www.tulaoshi.com/n/20160129/1482684.html

延伸阅读
标签: ASP
  使用javascript创建Microsoft XML DOM,就可以完成这一工作. // 装入数据. var source = new ActiveXObject("Microsoft.XMLDOM"); source.async = false source.load("history.xml"); // 装入样式表. var stylesheet = new ActiveXObject("Microsoft.XMLDOM"); stylesheet.async = false ...
标签: ASP
  ASP具备管理不同语言脚本程序的能力,能够自动调用合适的脚本引擎以解释脚本代码和执行内置函数。ASP开发环境提供了两种脚本引擎,即VBScript(缺省)和JScript。不过,开发者并没有被限制于只能使用这两种语言,只要能够提供合适的ActiveX脚本引擎就能使用任何脚本语言。 脚本语言的选择往往基于许多不同原因:它可能是开发者最...
标签: Web开发
?   $size_small=5;//液晶宽度   $size_big=25;//液晶长度   $distance=10;//间距   $color_back="#DDDDDD";   $color_dark="#CCCCCC";   $color_light="#000000";   $number=0; ? html head titleTimer/title meta http-equ...
  信息来源:《黑客防线》 本文一共介绍了七种方法: 一:最简单的加密解密 二:转义字符"\"的妙用 三:使用Microsoft出品的脚本编码器Script Encoder来进行编码 (自创简单解码) 四:任意添加NUL空字符(十六进制00H) (自创) 五:无用内容混乱以及换行空格TAB大法 六:自写解密函数法 七:错误的利用 (自创) 在做网页时(...
   [译者注:将本文的最后示例代码拷贝至文本文件中,更名文件为homepage.htm格式文件,在浏览器中运行,本文以该示例代码讲解   简介   ====================================   问题是我想解决自动访问http://www.thehungersite.com。这个页面能够限制你每一天只访问它一次(不要忘记在这链接上点击)。  ...

经验教程

158

收藏

5

热门标签