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中的setInterval和setTimeout使用实例
May 09 Javascript
js动态创建标签示例代码
Jun 09 Javascript
angularjs中的单元测试实例
Dec 06 Javascript
javascript闭包(Closure)用法实例简析
Nov 30 Javascript
js密码强度实时检测代码
Mar 02 Javascript
JS中对象与字符串的互相转换详解
May 20 Javascript
JavaScript仿微博发布信息案例
Nov 16 Javascript
JS经典正则表达式笔试题汇总
Dec 15 Javascript
EasyUI框架 使用Ajax提交注册信息的实现代码
Sep 27 Javascript
Vue项目部署在Spring Boot出现页面空白问题的解决方案
Nov 26 Javascript
vue favicon设置以及动态修改favicon的方法
Dec 21 Javascript
vue 使用 canvas 实现手写电子签名
Mar 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
PHP写MySQL数据 实现代码
2009/06/15 PHP
PHP获取MAC地址的函数代码
2011/09/11 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
2014/04/08 PHP
Zend Framework创建自己的动作助手详解
2016/03/05 PHP
php生成Android客户端扫描可登录的二维码
2016/05/13 PHP
php+mysql查询实现无限下级分类树输出示例
2016/10/03 PHP
php nginx 实时输出的简单实现方法
2018/01/21 PHP
来自国外的14个图片放大编辑的jQuery插件整理
2010/10/20 Javascript
JavaScript中URL编码函数代码
2011/01/11 Javascript
ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能
2012/02/03 Javascript
JSON+JavaScript处理JSON的简单例子
2013/03/20 Javascript
jQuery图片切换插件jquery.cycle.js使用示例
2014/06/16 Javascript
javascript实现表单验证
2016/01/29 Javascript
Move.js入门
2017/02/08 Javascript
Bootstrap模态框插入视频的实现代码
2017/06/25 Javascript
angularjs 缓存的使用详解
2018/03/19 Javascript
React Form组件的实现封装杂谈
2018/05/07 Javascript
如何优雅地在vue中添加权限控制示例详解
2019/03/07 Javascript
详解如何提升JSON.stringify()的性能
2019/06/12 Javascript
vue滚动插件better-scroll使用详解
2019/10/18 Javascript
webpack打包优化的几个方法总结
2020/02/10 Javascript
Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码
2020/08/27 Javascript
如何利用node转发请求详解
2020/09/17 Javascript
[40:05]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
Anaconda 离线安装 python 包的操作方法
2018/06/11 Python
对Python中for复合语句的使用示例讲解
2018/11/01 Python
python Selenium 库的使用技巧
2020/10/16 Python
最新pycharm安装教程
2020/11/18 Python
html5定位获取当前位置并在百度地图上显示
2014/08/22 HTML / CSS
土木工程毕业生自荐信
2013/11/12 职场文书
魅力教师事迹材料
2014/01/10 职场文书
我未来的职业规划范文
2014/01/11 职场文书
大学生求职信例文
2014/06/29 职场文书
2014基层党员批评与自我批评范文
2014/09/24 职场文书
小学班主任个人总结
2015/03/03 职场文书
网站文案策划岗位职责
2015/04/14 职场文书