赛迪网 > IT技术 Java > 技术动态
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

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

发布时间:2007.07.06 06:34     来源:赛迪网技术社区    作者:John D. Mitchell

本技巧说明如何创建一个档案文件,使它包含您的所有类文件,以便 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

请注意,在这两种情况下,命令行标志包含的是数字 0,而不是字母 O。

要在 HTML 文件中使用 .zip 档案文件,可在 applet 部分指定 archive 标记:

<applet name="Hello" code="HelloWorld" width="50" height="50"
codebase="http://www.foo.com/classes"
archive="hello.zip">
</applet>

别急 -- 我们还可以更进一步!您可以创建 .cab 和 zip 档案文件,并同时支持这两种格式;这意味着 Navigator 和 Internet Explorer 用户都将获得更快的 applet 下载速度。不必为使用这两种浏览器的旧版本(或是任何其他浏览器)的用户担心,因为他们仍将通过慢速的老方法来获取 applet 的所有类。将以上内容综合起来:

<applet name="Hello" code="HelloWorld" width="50" height="50"
codebase="http://www.foo.com/classes"
archive="hello.zip">
<param name=codebase value="http://www.foo.com/classes">
<param name=cabbase value="hello.cab">
</applet>

现在您可以用 .cab 和 zip 档案文件来解决下载速度慢的问题,JavaSoft 在 JDK 1.1 中已定义了一种新的档案文件格式,您可以用这种新的格式将所有图像文件、音频文件和类文件打包在一个文件中。JavaSoft 将这种格式称为 Java Archive (JAR)。< APPLET > HTML 标记已被修改,以便用 archives 参数来处理这种 JAR 格式。(责任编辑:龚勋)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 技巧:JavaScript与JavaApplet综合运用 (07-05) · 使用技巧:Applet中应用JDBC访问数据库 (07-05)
· Java实时多任务调度过程中安全监控设计 (07-05) · Java的interface观念与C++多重继承比较 (07-05)
· Java中的类型转换与强制类型转换的实现 (07-05) · 使用技巧:通过Java.net包建立双向通讯 (07-04)
· 技巧:用Java的加密机制来保护你的数据 (07-04) · 使用技巧:Java编写通过代理访问的程序 (07-04)
· 使用Java解析网络数据流的三种特殊方法 (07-04) · JSP实现JDOM处理数据库到XML转换的应用 (07-04)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 电子商务盈利新招:垂直化渠道管理新趋势
· 互联网加速蜕变 运营商进军搅动市场格局
· 08 IT技术风起云涌 专访 ITIL落地难在哪
· 视频加密保护解决方案 文档安全解决方案
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统