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 相关文章推荐
JTrackBar水平拖动效果
Jul 15 Javascript
js或css文件后面跟参数的原因说明
Jan 09 Javascript
简短几句 通俗解释javascript的闭包
Jan 17 Javascript
自定义一个jquery插件[鼠标悬浮时候 出现说明label]
Jun 27 Javascript
基于jQuery+HttpHandler实现图片裁剪效果代码(适用于论坛, SNS)
Sep 02 Javascript
jquery对table中各数据的增加、保存、删除操作示例
May 14 Javascript
js格式化时间小结
Nov 03 Javascript
js实现改进的仿蓝色论坛导航菜单效果代码
Sep 06 Javascript
微信小程序 获取当前地理位置和经纬度实例代码
Dec 05 Javascript
JS对象的深度克隆方法示例
Mar 16 Javascript
Angular项目中$scope.$apply()方法的使用详解
Jul 26 Javascript
vue获取验证码倒计时组件
Aug 26 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中创建空文件的代码[file_put_contents vs touch]
2012/01/20 PHP
PHP面向对象类型约束用法分析
2019/06/12 PHP
用js来定义浏览器中一个左右浮动元素相对于页面主体宽度的位置的函数
2012/01/21 Javascript
THREE.JS入门教程(1)THREE.JS使用前了解
2013/01/24 Javascript
解析Jquery取得iframe中元素的几种方法
2013/07/04 Javascript
ExtJs设置GridPanel表格文本垂直居中示例
2013/07/15 Javascript
基于jQuery Bar Indicator 插件实现进度条展示效果
2015/09/30 Javascript
谈谈js中的prototype及prototype属性解释和常用方法
2015/11/25 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
2017/02/07 Javascript
node.js express中app.param的用法详解
2017/07/16 Javascript
js中this对象用法分析
2018/01/05 Javascript
怎样使你的 JavaScript 代码简单易读(推荐)
2019/04/16 Javascript
node中使用log4js4.x版本记录日志的方法
2019/08/20 Javascript
Vue学习之组件用法实例详解
2020/01/06 Javascript
Vue中component标签解决项目组件化操作
2020/09/04 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
2020/09/21 Javascript
[01:11:10]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG加赛
2014/05/26 DOTA
Python实现的生成自我描述脚本分享(很有意思的程序)
2014/07/18 Python
简单的编程0基础下Python入门指引
2015/04/01 Python
利用python写个下载teahour音频的小脚本
2017/05/08 Python
详谈在flask中使用jsonify和json.dumps的区别
2018/03/26 Python
Python图像的增强处理操作示例【基于ImageEnhance类】
2019/01/03 Python
Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析
2019/12/26 Python
基于pycharm实现批量修改变量名
2020/06/02 Python
python中常用的数据结构介绍
2021/01/12 Python
css3实现信纸/同学录效果的示例代码
2018/12/11 HTML / CSS
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
size?爱尔兰官方网站:英国伦敦的球鞋精品店
2019/03/31 全球购物
银行出纳岗位职责
2013/11/25 职场文书
大学系主任推荐信范文
2013/12/24 职场文书
毕业生找工作自荐书
2014/06/30 职场文书
2014大四本科生自我鉴定总结
2014/10/04 职场文书
2015年119消防宣传日活动总结
2015/03/24 职场文书
政府会议通知范文
2015/04/15 职场文书
信仰观后感
2015/06/03 职场文书
红领巾广播站广播稿
2015/08/19 职场文书