技术文档>>JAVA>>核心技术>>SwingAwtApplet>查看文档  
  使用档案文件提高 applet 的加载速度     
  文章作者:未知  文章来源:未知  
  查看:1752次  录入:管理员--2007-03-12  
    摘要
  本技巧说明如何创建一个档案文件,使它包含您的所有类文件,以便 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 代码来处理这两种格式。这是因为每种专用文件格式是由 HTML 标记的不同扩展指定的。
  
  本文不谈 CAB 文件的创建(因为 CAB 将逐渐出局)。对此确实感兴趣的人可查阅 Microsoft 的 Java 开发人员文档。一旦创建了 CAB 档案文件,您就可以通过在 标记中添加一个 cabbase HTML 参数 (param) 来使用 CAB:
  
  
  
  
  
  
  
  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 标记:
  
     codebase="http://www.foo.com/classes"
   archive="hello.zip">
  
  
  
  别急 -- 我们还可以更进一步!您可以创建 .cab 和 zip 档案文件,并同时支持这两种格式;这意味着 Navigator 和 Internet Explorer 用户都将获得更快的 applet 下载速度。不必为使用这两种浏览器的旧版本(或是任何其他浏览器)的用户担心,因为他们仍将通过慢速的老方法来获取 applet 的所有类。将以上内容综合起来:
  
     codebase="http://www.foo.com/classes"
   archive="hello.zip">
  
  
  
  
  
  现在您可以用 .cab 和 zip 档案文件来解决下载速度慢的问题,我想我应该告诉您,JavaSoft 在 JDK 1.1 中已定义了一种新的档案文件格式,您可以用这种新的格式将所有图像文件、音频文件和类文件打包在一个文件中。JavaSoft 将这种格式称为 Java Archive (JAR)。HTML 标记已被修改,以便用 archives 参数来处理这种 JAR 格式。我把将这三种档案文件格式整合到一起的工作留给您。
 
 
上一篇: 如何实现Applet之间跨浏览器窗口的通信    下一篇: java版winzip总结之一:菜单快捷键和加速键(swing版)
  相关文档
java swing 9.27 课程 03-12
用 JFC/Swing 将可访问性构建到您的 Java 应用程序中 03-12
Applet的3中运行方式 03-12
Java Swing中的键盘事件处理 03-12
Java Applet 编 程 技 巧 03-12
Java开发中的线程安全选择与Swing 03-12
SWT:AWT和SWING的强大竞争者 03-12
Java Applet如何自动发e-mail 03-12
Java:Applications与applets 03-12
JAVA APPLET 的字符输出 03-12
Java应用技巧-Applet与Application合并 03-12
java版winzip总结之一:菜单快捷键和加速键(swing版) 03-12
优化Java Applet的加载过程 03-12
Applet与Servlet通讯的四种方法及其比较 03-12
怎 样 在 APPLET 中 发 EMAIL 03-12
Applet加载Java应用程序 03-12
使用档案文件提高 applet 的加载速度 03-12
同网页内两个Applet通信 03-12
JavaApplet编程技巧 03-12
优化Java applets 加载过程 03-12
返回首页 | 关于我们 | J网章程 | JSP空间 | 免责声明 | 常见问题 | JSP空间操作手册

@2005-2012福建JSP技术网 版权所有 闽ICP备09012882号
技术电话:13616026886 谢宁松
邮箱:fjjsp @ vip.163.com 站长QQ,点击这里给我发消息