2007-07-08

使用档案文件提高JavaApplet的加载速度

来源: 本站收集整理 作者:佚名 评论 0 条
 

本技巧说明如何创建一个档案文件,使它包含您的所有类文件,以便 Netscape 浏览器用户能在最短时间内下载您的 applet!

现在人们对 Java 常发的牢骚之一便是它的性能。影响用户对 Java applet 速度和价值的熟悉的一个重大因素是:加载组成 applet 的所有类要花很长时间。我们曾经愿意花一分钟或更长时间等待 applet 的下载,而我们做这一切只是为了看一些无聊的动画。不幸的是,对性能的这种负面印象可能使实际上很有用的 applet 也显得没什么用处了。

要理解这种新的 applet 加载方法速度较快的原因,您需要知道为什么当前的方法速度如此之慢。一个 applet 通常由许多 Java .class 文件组成。对于每个类文件,类加载器必须打开一个从浏览器到 applet 代码所在服务器的单独套接字连接。因此,假如您的 applet 由 18 个 .class 文件组成,浏览器必须至少打开 18 个套接字才能将每个文件传送到位。设置及断开每个连接的开销相当大。例如,设置每个连接需要往返传送大量的网络数据包,这样会大大延长总响应时间(尤其是在网络日益拥挤的今天)。(要了解有关套接字连接开销的具体细节,请查阅一本重要的 TCP/IP 参考手册。)

到现在,您可能已想出这一问题的解决方案了:将所有 .class 文件都放在一个大文件中,这样只需建立一个连接即可下载整个 applet。真是个好主意!这正是 Netscape 和 Microsoft 两大 Java 浏览器阵营的共同想法。

不幸的是,他们提出的两个解决方案并不直接兼容。Microsoft,出于自身的不同需要,创建了自己的 CAB 文件格式。Netscape 的解决方案是使用现有的、人们熟知的 .zip 档案文件格式。幸运的是,假如愿意,我们可以编写 HTML 代码来处理这两种格式。这是因为每种专用文件格式是由 < APPLET > HTML 标记的不同扩展指定的。

本文不谈 CAB 文件的创建(因为 CAB 将逐渐出局)。对此确实感爱好的人可查阅 Microsoft 的 Java 开发人员文档。一旦创建了 CAB 档案文件,您就可以通过在 < APPLET > 标记中添加一个 cabbase HTML 参数 (param) 来使用 CAB:

<applet name="Hello" code="HelloWorld" width="50" height="50">

<param name=codebase value="http://www.foo.com/classes">

<param name=cabbase value="hello.cab">

</applet>

cabbase 参数的 value 值即 CAB 文件的文件名。

创建 Netscape 浏览器可用的一个 .zip 档案文件很轻易。将 applet 所需的所有 .class 文件打包到一个 .zip 文件中。您只需记住:只是将文件存储在档案文件中(也就是不许压缩)。

假如您使用的是 PKZip:

pkzip -e0 fileArchive.zip listOfClassFiles

如您使用的是 Info-Zip 压缩程序:

zip -0 fileArchive.zip listOfClassFiles
共2页: 上一页 1 [2] 下一页

(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:用C#对DBF数据库的操作  
下一篇:用C# 开发SQL Server 2005的自定义聚合函数
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号