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 相关文章推荐
JS版网站风格切换实例代码
Oct 06 Javascript
javascript 类型判断代码分析
Mar 28 Javascript
利用JS重写Cognos右键菜单的实现代码
Apr 11 Javascript
ExtJs中gridpanel分组后组名排序实例代码
Dec 02 Javascript
加随机数引入脚本不让浏览器读取缓存
Sep 04 Javascript
页面加载完后自动执行一个方法的js代码
Sep 06 Javascript
Knockout自定义绑定创建方法
Dec 26 Javascript
微信小程序实现收藏与取消收藏切换图片功能
Aug 03 Javascript
JavaScript之实现一个简单的Vue示例
Jan 17 Javascript
实例详解vue中的$root和$parent
Apr 29 Javascript
js键盘事件实现人物的行走
Jan 17 Javascript
vue数据更新UI不刷新显示的解决办法
Aug 06 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
JavaScript与HTML结合的基本使用方法整理
2015/10/12 PHP
php创建桌面快捷方式实现方法
2015/12/31 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
JavaScript版TAB选项卡效果实例
2013/08/16 Javascript
js获取多个tagname的节点数组
2013/09/22 Javascript
js 3种归并操作的实例代码
2013/10/30 Javascript
js传中文参数controller里获取参数乱码问题解决方法
2014/01/03 Javascript
javascript遍历控件实例详细解析
2014/01/10 Javascript
Jquery.Form 异步提交表单的简单实例
2014/03/03 Javascript
JavaScript弹出对话框的三种方式
2016/03/23 Javascript
Bootstrap教程JS插件弹出框学习笔记分享
2016/05/17 Javascript
深入理解JavaScript 函数
2016/06/06 Javascript
浅谈jQuery中hide和fadeOut的区别 show和fadeIn的区别
2016/08/18 Javascript
详谈Node.js之操作文件系统
2017/08/29 Javascript
Vue cli+mui 区域滚动的实例代码
2018/01/25 Javascript
React Native基础入门之初步使用Flexbox布局
2018/07/02 Javascript
Mint-UI时间组件起始时间问题及时间插件使用
2018/08/20 Javascript
vue2.0 下拉框默认标题设置方法
2018/08/22 Javascript
Vue.js页面中有多个input搜索框如何实现防抖操作
2019/11/04 Javascript
Javascript模拟实现new原理解析
2020/03/03 Javascript
《javascript设计模式》学习笔记七:Javascript面向对象程序设计组合模式详解
2020/04/08 Javascript
[01:51]DAC趣味视频-如何成为职业选手.mp4
2017/04/02 DOTA
[55:18]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python将人民币转换大写的脚本代码
2013/02/10 Python
讲解Python中的递归函数
2015/04/27 Python
python 中if else 语句的作用及示例代码
2018/03/05 Python
查找python项目依赖并生成requirements.txt的方法
2018/07/10 Python
Python 实现微信防撤回功能
2019/04/29 Python
Django接收post前端返回的json格式数据代码实现
2019/07/31 Python
python批量替换文件名中的共同字符实例
2020/03/05 Python
Python 微信公众号文章爬取的示例代码
2020/11/30 Python
css3实现圆锥渐变conic-gradient效果
2020/02/12 HTML / CSS
薇姿法国官网:Vichy法国
2021/01/28 全球购物
2014年幼儿园元旦活动方案
2014/02/13 职场文书
地理科学专业自荐信
2014/09/01 职场文书
2014个人年度工作总结范文
2014/12/24 职场文书