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 相关文章推荐
html中table数据排序的js代码
Aug 09 Javascript
js自动查找select下拉的菜单并选择(示例代码)
Feb 26 Javascript
asp.net+js实现金额格式化
Feb 27 Javascript
js 判断所选时间(或者当前时间)是否在某一时间段的实现代码
Sep 05 Javascript
深入浅析knockout源码分析之订阅
Jul 12 Javascript
微信小程序MUI导航栏透明渐变功能示例(通过改变rgba的a值实现)
Jan 24 Javascript
js实现固定区域内的不重叠随机圆
Oct 24 Javascript
vue 解决路由只变化参数页面组件不更新问题
Nov 05 Javascript
vue中keep-alive,include的缓存问题
Nov 26 Javascript
使用vue重构资讯页面的实例代码解析
Nov 26 Javascript
bootstrap-table后端分页功能完整实例
Jun 01 Javascript
Vue封装全局过滤器Filters的步骤
Sep 16 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/10/02 PHP
PHP页面转UTF-8中文编码乱码的解决办法
2015/10/20 PHP
PHP几个实用自定义函数小结
2016/01/25 PHP
php生成无限栏目树
2017/03/16 PHP
PHP实现微信图片上传到服务器的方法示例
2017/06/29 PHP
php实现微信发红包功能
2018/07/13 PHP
php实现映射操作实例详解
2019/10/02 PHP
Discuz! 6.1_jQuery兼容问题
2008/09/23 Javascript
提升你网站水平的jQuery插件集合推荐
2011/04/19 Javascript
jquery弹出遮掩层效果【附实例代码】
2016/04/28 Javascript
JavaScript仿淘宝页面图片滚动加载及刷新回顶部的方法解析
2016/05/24 Javascript
实现JavaScript高性能的数据存储
2016/12/11 Javascript
jquery animate动画持续运动的实例
2017/11/29 jQuery
React组件中的this的具体使用
2018/02/28 Javascript
Vue中遍历数组的新方法实例详解
2019/07/21 Javascript
vue实现树状表格效果
2020/12/29 Vue.js
Vue如何实现变量表达式选择器
2021/02/18 Vue.js
[13:39]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第一场
2014/05/26 DOTA
python封装对象实现时间效果
2020/04/23 Python
python转换字符串为摩尔斯电码的方法
2015/07/06 Python
Python中装饰器学习总结
2018/02/10 Python
python监控文件并且发送告警邮件
2018/06/21 Python
Python快速查找list中相同部分的方法
2018/06/27 Python
用Python读取几十万行文本数据
2018/12/24 Python
pytorch:实现简单的GAN示例(MNIST数据集)
2020/01/10 Python
python框架flask入门之路由及简单实现方法
2020/06/07 Python
PyInstaller运行原理及常用操作详解
2020/06/13 Python
使用pytorch实现论文中的unet网络
2020/06/24 Python
python eventlet绿化和patch原理
2020/11/21 Python
Pycharm配置lua编译环境过程图解
2020/11/28 Python
结婚周年感言
2014/02/24 职场文书
好书伴我成长演讲稿
2014/05/14 职场文书
Navicat连接MySQL错误描述分析
2021/06/02 MySQL
Django rest framework如何自定义用户表
2021/06/09 Python
python geopandas读取、创建shapefile文件的方法
2021/06/29 Python
详解Python+OpenCV绘制灰度直方图
2022/03/22 Python