再现理想 发表于 2015-1-18 11:43:17

JAVA教程之预加载与javascript的Image()对象

他们对jsp,servlet,javabean进行封装就是为了展示他们的某个思想,与java的开发并没有必然的关系,也不见得在所以情况下,别人使用起来会简单。对象|加载良多高分辩率的图象真的可以扮靓一个Web网站。可是它们也大概会下降网站的(呼应)速率――图象都是文件,文件就要占用带宽,而带宽与守候工夫间接相干。如今是你举行自我进修,懂得怎样使用一种叫做图象预加载的小技能给网站提速的时分了。

图象的预加载


扫瞄器一般的事情体例是:只要当请求加载图象的HTTP哀求被发送的时分,图象才会被加载,而不管它是主动地经由过程<ahref="#"onMouseOver="javascript:document.img01.src=http://www.163design.net/j/e/heavyimagefile.jpg"></a></body></html>
要注重的是,图象标志本身其实不会处置onMouseOver()和onMouseOut()事务,这就是为何下面例子里的
在下面的例子里,你先界说变量i和叫做imageObj的Image()对象。然后界说一个叫做images[]的新数组,在这个数组里,每一个数组元素都保留着必要预加载的图象来历。最初,创立一个for()轮回,让它在数组里轮回,并将它们中的每个都指派给Image()对象,如许就可以够把它预加载到缓冲区里。
onLoad()事务处置程序
就和JavaScript里的别的良多对象一样,Image()对象也带有多个事务处置程序。这个中最有效的毫无疑问的就是onLoad()处置程序了,它会在完成图象加载的时分被挪用。这个处置程序能够与自界说的函数一同利用,以便在完成图象加载以后举行特定的义务。上面的例子经由过程在图象加载的时分显现“请守候(pleasewait)”提醒信息来讲明这个成绩,然后在图象完成加载以后就向扫瞄器发送一个新的URL。

<html><head><scriptlanguage="JavaScript">//createanimageobjectobjImage=newImage();//setwhathappensoncetheimagehasloadedobjImage.onLoad=imagesLoaded();//preloadtheimagefileobjImage.src=http://www.163design.net/j/e/images/image1n.gif;//functioninvokedonimageloadfunctionimagesLoaded(){document.location.href=index2.html;}</script></head><body>Pleasewait,loadingimages...</body></html>


固然,你还能够创立一个图象数组,对它举行轮回,预加载每一个图象,并在每一个阶段对已加载图象的数目坚持跟踪。一旦加载了一切的图象,事务处置程序就可以够依照设定把扫瞄器带到下一个页面(大概举行其他的义务)。

预加载与多形态菜单
如今,把你方才学到的实际付诸真实的理论怎样?上面一部份内容就是我可巧编写的一段代码――一个由多个按钮(图象链接)构成的菜单条――个中每一个按钮都大概处于三种形态中的一种:一般(normal)、hover(悬停)和点击(click)。因为一切的按钮都有多个形态,以是就有需要利用图象预加载来确保菜单可以依据其切换到的形态举行疾速的呼应。列表A里的代码就说了这一点。

列表A里的HTML代码会创建一个由四个按钮构成的菜单条,每一个按钮都有三种形态:一般、悬停和点击。其请求以下:

但鼠标挪动各处于一般形态的按钮上时,按钮会变成悬停形态。当鼠标移开的时分,按钮又会恢复到一般形态。
当鼠标点击按钮的时分,按钮就会变成点击形态。它会一向坚持这个形态,直到别的一个按钮被点击。
假如有一个按钮被点击,那末其他的按钮就都不克不及处于点击形态。其他的按钮只可以处于悬停大概一般形态。
一次只能有一个按钮能够被点击。
一次只能有一个按钮处于悬停形态。
第一项义务是创建保留有菜单每一个形态的图象的数组。与这些数组元素绝对应的<img>元素也都在HTML文档的主体里被创立,并按按次定名。要注重的是,对数组值的索引是从0入手下手的,而响应的<img>元素是从1入手下手定名的――这就必要在剧本前面的一段里举行某种盘算上的调剂。

PreloadImages()函数会卖力把一切的图象都加载到缓冲区里,如许的话对鼠标挪动的呼应工夫会被减到最小。一个for()轮回被用在第一步里创立的图象里举行迭代,并预加载每个图象。

ResetAll()函数是把一切图象恢复都到它们一般形态的便利办法。这是有需要的,由于当菜单的项目被点击的时分,菜单里其他一切的项目都必需在被点击项目可以切换到点击形态之前恢复到一般形态。

SetNormal()、setHover()和setClick()函数卖力把特定图象(图象的编号被作为函数的自变量举行传送)的来历分离改成一般、悬停大概点击形态。因为被点击的图象必需一向坚持点击形态,直到别的一个图象被点击(见第二项请求),以是它们临时不会对鼠标挪动作出反响;如许的话,假如按钮还不是处在点击形态,那末setNormal()和setHover()函数所包含的代码就只能用来改动按钮的形态。

下面所提到的预加载只是进步你JavaScript效果呼应工夫的多种办法之一。就在你的网站上利用下面列出的技能,并依据你的请求在必要的中央变动它们吧。祝你好运!


其实产生见解的过程就是训练自己发现问题,分析问题的能力。根据以上的认识我想谈下传统的学习与通过视频独立学习的优缺点:

莫相离 发表于 2015-1-21 13:20:28

Java 编程语言的风格十分接近C、C++语言。

变相怪杰 发表于 2015-1-24 14:00:04

是一种语言,用以产生「小应用程序(Applet(s))

金色的骷髅 发表于 2015-1-25 14:31:42

接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。

乐观 发表于 2015-1-30 18:18:00

是一种使用者不需花费很多时间学习的语言

冷月葬花魂 发表于 2015-2-1 12:10:16

接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。

仓酷云 发表于 2015-2-7 04:44:18

如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。

若相依 发表于 2015-2-7 18:14:26

是一种语言,用以产生「小应用程序(Applet(s))

小妖女 发表于 2015-2-8 07:48:42

我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。

小女巫 发表于 2015-2-10 16:59:11

是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言

柔情似水 发表于 2015-2-16 04:49:04

Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台

深爱那片海 发表于 2015-3-3 11:16:56

关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。

简单生活 发表于 2015-3-11 10:16:28

任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言

再现理想 发表于 2015-3-11 17:37:51

是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能

灵魂腐蚀 发表于 2015-3-15 09:19:50

是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言

谁可相欹 发表于 2015-3-20 22:26:49

一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从

活着的死人 发表于 2015-3-24 23:38:06

那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!

愤怒的大鸟 发表于 2015-4-3 01:54:51

你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。

分手快乐 发表于 2015-4-18 10:15:10

是一种将安全性(Security)列为第一优先考虑的语言

山那边是海 发表于 2015-4-27 00:35:59

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
页: [1] 2
查看完整版本: JAVA教程之预加载与javascript的Image()对象