JavaScript进阶教程(第四课第一部分)


Posted in Javascript onApril 05, 2007

在以前的课程中,我们学习了对文本和字符串的各种操作,今天我们专注于两种不同的数据类型:图象和对象。学完这一课,你将知道如何: 
    使用JavaScript来加速图象交换。 
    创建你自己的对象来使脚本易于理解。 
    使用关联数组来快速存取脚本中的每一个对象。
    使用JavaScript做图象变换的一个主要问题是,它直到需要换图时才去告诉浏览器下载那张图象。如果你有一张大的图象,想在鼠标滑过一副图象时调出来,浏览器得临时下载这张图,这可能会花一定时间从而使滑动效果大打折扣。
    如果你的连接速度较慢,而你要调入的是一个相当大的图象的话,那你把鼠标放到图上后只好去等待。由于有的浏览器要求被调入的图象必须保存在缓冲区里,所以有时你可能根本就看不到图象变换的效果。为了避免这些烦心的问题,我们可以把要变换的图象在页面调入时就预先装载。
    在Web编程时,预装载是在需要图片之前就将图片下载到缓存的技术。采用这样的方式可以使当确实需要显示图片时迅速将其从缓存中恢复回来并立即显示。
    预装载图象其实并不困难。你要做的就是创建一个新的image对象,然后把要预装的图象名设定成image的src属性,如下所示:
    var an_image = new Image();
    an_image.src = "my_nice_image.gif";
    通过设置image的src属性就可以自动地把图象下载到你的硬盘里(当然假设你的cache可以用),然后图象变换时就从硬盘直接读入图象而不用再去下载了。 
    剩下要做的唯一一件事就是,怎样在页面被下载以后和图象变换操作之前使预装图象发生。让人愉快的是这很简单。HTML中的body标记有一个事件处理器叫onLoad,当页面被调入后它将被调用。如果你的body标记是这样的:
    <body onLoad="doPreload();">
    那么doPreload()函数将在网页下载后被调用。函数的代码是这样的: 
    function doPreload()
    {
        var the_images = new Array(’kwmatt.jpg’,’matbon.jpg’,’lunchMat.jpg’);
        preloadImages(the_images);
    }
    function preloadImages(the_images_array) {
        for(loop = 0; loop < the_images_array.length; loop++)
        {
            var an_image = new Image();
            an_image.src = the_images_array[loop];
        }
    }
    doPreload()函数创建了需要预装的图象名的数组,并把数组作为参数传送到preloadImages()函数, preloadImages()函数包含了一个循环,每次循环都创建一个新的图象对象,并把图象名设到它的src属性中。
    不很难吧?图象对象相当有用对吧?我很高兴你这样想,休息一会儿,马上我们就要进入一个更令人兴奋,更让人动脑筋的话题:创建你自己的对象。

Javascript 相关文章推荐
jQuery弹出层插件简化版代码下载
Oct 16 Javascript
Extjs NumberField后面加单位实现思路
Jul 30 Javascript
EasyUI中combobox默认值注意事项
Mar 01 Javascript
JavaScript实现基于Cookie的存储类实例
Apr 10 Javascript
js+HTML5实现canvas多种颜色渐变效果的方法
Jun 05 Javascript
jQuery绑定事件的四种方式介绍
Oct 31 Javascript
利用jquery实现验证输入的是否是数字、小数,包含保留几位小数
Dec 07 Javascript
js断点调试经验分享
Dec 08 Javascript
JavaScript深拷贝和浅拷贝概念与用法实例分析
Jun 07 Javascript
使用Javascript简单计算器
Nov 17 Javascript
vue实现条件叠加搜索的解决方法
May 28 Javascript
解决Vue.js应用回退或刷新界面时提示用户保存修改问题
Nov 24 Javascript
JavaScript 指导方针
Apr 05 #Javascript
JavaScript 特殊字符
Apr 05 #Javascript
JavaScript 中的事件教程
Apr 05 #Javascript
JavaScript While 循环基础教程
Apr 05 #Javascript
脚本之家贴图转换+转贴工具用到的js代码超级推荐
Apr 05 #Javascript
javascript判断单选框或复选框是否选中方法集锦
Apr 04 #Javascript
javascript中巧用“闭包”实现程序的暂停执行功能
Apr 04 #Javascript
You might like
php 中文处理函数集合
2008/08/27 PHP
使用dump函数,给php加断点测试
2013/06/25 PHP
Symfony页面的基本创建实例详解
2015/01/26 PHP
在IE模态窗口中自由查看HTML源码的方法
2007/03/08 Javascript
js window.onload 加载多个函数的方法
2009/11/02 Javascript
JS学习之表格的排序简单实例
2016/05/16 Javascript
详解node服务器中打开html文件的两种方法
2017/09/18 Javascript
vue基于element-ui的三级CheckBox复选框功能的实现代码
2018/10/15 Javascript
vue-cli安装使用流程步骤详解
2018/11/08 Javascript
11个教程中不常被提及的JavaScript小技巧(推荐)
2019/04/17 Javascript
微信小程序授权登陆及每次检查是否授权实例代码
2019/09/18 Javascript
怎么理解wx.navigateTo的events参数使用详情
2020/05/18 Javascript
[01:03:27]NAVI vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
[42:06]2019国际邀请赛全明星赛 8.23
2019/09/05 DOTA
Python iter()函数用法实例分析
2018/03/17 Python
Python 单元测试(unittest)的使用小结
2018/11/14 Python
利用python在excel里面直接使用sql函数的方法
2019/02/08 Python
Python 实现黑客帝国中的字符雨的示例代码
2020/02/20 Python
PyCharm 光标变成黑块的解决方式
2021/02/06 Python
使paramiko库执行命令时在给定的时间强制退出功能的实现
2021/03/03 Python
css3实现二维码扫描特效的示例
2020/10/29 HTML / CSS
详解CSS3:overflow属性
2020/11/17 HTML / CSS
Melissa鞋马来西亚官方网站:MDreams马来西亚
2018/04/05 全球购物
Interflora澳大利亚:同日鲜花速递
2019/06/25 全球购物
几个SQL的面试题
2014/03/08 面试题
ASP.NET中的身份验证有那些
2012/07/13 面试题
网络维护中文求职信
2014/01/03 职场文书
赡养老人协议书
2014/04/21 职场文书
应届毕业生自荐信
2014/05/28 职场文书
医疗专业毕业生求职信
2014/08/28 职场文书
四风对照检查材料思想汇报
2014/09/20 职场文书
2014大学班主任工作总结
2014/11/08 职场文书
闪闪的红星观后感
2015/06/08 职场文书
宝宝满月祝酒词
2015/08/10 职场文书
培训心得体会怎么写
2016/01/25 职场文书
HTML常用标签超详细整理
2022/03/19 HTML / CSS