59.html
来自「写给JSP初级程序员的书」· HTML 代码 · 共 140 行
HTML
140 行
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="description" content="Java,JDBC,EJB,Open Source,jdk,rmi">
<meta name="Keywords"
content="Java, servlets, Java servlet, Javascript, ActiveX, VRML,
applet, applets, directory, news, jdbc, applications,
Java applications, Java developer, Java development, developer,
classes, Jars.com, Jars, intranet, Java applet, Javabeans,
Java products, JDK, Java development kit, java development environment, JIT,
JavaPlan, enterprise tools, JVM, Java Virtual Machine, Java resources,
SUN, CGI, Perl, database, network, html,
xml, dhtml, rating, ratings, review, jars, cgi, programming,
software review, software rating">
<title>csdn_使用档案文件提高 applet 的加载速度</title>
<style>
.news { BACKGROUND: #007cd3; font-family: "宋体"; font-size: 9pt }
.t { font-family: "宋体"; font-size: 9pt }
.t1 { color:#007cd3; font-family: "宋体"; font-size: 9pt }
.white { font-family: "宋体"; font-size: 9pt;color:#FFFFFF }
.red { font-family: "宋体"; font-size: 9pt;color:#FF0000 }
A:visited {color:#0000FF}
A:hover {color: #ff6666; text-decoration: none}
.text {font-size: 12px; line-height: 160%; font-family: "宋体"}
.text1 {color:#000000; font-size: 12px; line-height: 130%; font-family: "宋体"; text-decoration: none}
.text1:visited {color:#000000}
.text1:hover {color: #000000}
.text2 {color:#000000; font-size: 12px; line-height: 130%; font-family: "宋体"; text-decoration: none}
.text2:visited {color:#000000}
.text2:hover {color: #000000}
.text3 {font-size: 12px; line-height: 100%; font-family: "宋体"; text-decoration: none}
.large {font-size: 14.8px; line-height: 130%}
</style>
</head>
<body
<center>
<tr>
<td WIDTH="100%" VALIGN="TOP">
<tr>
<td WIDTH="100%" CLASS="white"></td>
</tr>
<tr>
<td WIDTH="50%" bordercolor="#FFFFFF" CLASS="t1" bgcolor="#F0F0F0" align="center" nowrap>使用档案文件提高 applet 的加载速度 </td>
<p> <td WIDTH="50%" bordercolor="#FFFFFF" CLASS="t1" bgcolor="#F0F0F0" align="center" nowrap>作者:John D. Mitchell </td></p>
</tr>
<tr> <td WIDTH="100%" bordercolor="#FFFFFF" CLASS="t" bgcolor="#F0F0F0" colspan="2">
<BLOCKQUOTE>
<STRONG>摘要</STRONG><BR>
本技巧说明如何创建一个档案文件,使它包含您的所有类文件,以便 Netscape 浏览器用户能在最短时间内下载您的 applet!<em></em>
</BLOCKQUOTE>
<!-- begin body text -->
现在人们对 Java 常发的牢骚之一便是它的性能。影响用户对 Java applet 速度和价值的认识的一个重大因素是:加载组成 applet 的所有类要花很长时间。我们曾经愿意花一分钟或更长时间等待 applet 的下载,而我们做这一切只是为了看一些无聊的动画。
不幸的是,对性能的这种负面印象可能使实际上很有用的 applet 也显得没什么用处了。
<P>
要理解这种新的 applet 加载方法速度较快的原因,您需要知道为什么当前的方法速度如此之慢。一个 applet 通常由许多 Java .class 文件组成。对于每个类文件,类加载器必须打开一个从浏览器到 applet 代码所在服务器的单独套接字连接。因此,如果您的 applet 由 18 个 .class 文件组成,浏览器必须至少打开 18 个套接字才能将每个文件传送到位。设置及断开每个连接的开销相当大。例如,设置每个连接需要来回传送大量的网络数据包,这样会大大延长总响应时间(尤其是在网络日益拥挤的今天)。(要了解有关套接字连接开销的具体细节,请查阅一本重要的 TCP/IP 参考手册。)
<P>
到现在,您可能已想出这一问题的解决方案了:将所有 .class 文件都放在一个大文件中,这样只需建立一个连接即可下载整个 applet。真是个好主意!这正是 Netscape 和 Microsoft 两大 Java 浏览器阵营的共同想法。
<P>
不幸的是,他们提出的两个解决方案并不直接兼容。Microsoft,出于自身的不同需要,创建了自己的 CAB 文件格式。Netscape 的解决方案是使用现有的、人们熟知的 .zip 档案文件格式。幸运的是,如果愿意,我们可以编写 HTML 代码来处理这两种格式。这是因为每种专用文件格式是由 <APPLET> HTML 标记的不同扩展指定的。
<P>
本文不谈 CAB 文件的创建(因为 CAB 将逐渐出局)。对此确实感兴趣的人可查阅 Microsoft 的 Java 开发人员文档。一旦创建了 CAB 档案文件,您就可以通过在 <APPLET> 标记中添加一个 cabbase HTML 参数 (<em>param</em>) 来使用 CAB:
<P>
<code>
<applet name="Hello" code="HelloWorld" width="50" height="50"><BR>
<param name=codebase value="http://www.foo.com/classes"><BR>
<param name=cabbase value="hello.cab"><BR>
</applet><BR>
</code>
<P>
cabbase 参数的 <em>value</em> 值即 CAB 文件的文件名。
<P>
创建 Netscape 浏览器可用的一个 .zip 档案文件很容易。将 applet 所需的所有 .class 文件打包到一个 .zip 文件中。您只需记住:只是将文件存储在档案文件中(也就是不许压缩)。
<P>
如果您使用的是 PKZip:
<P>
<code>
pkzip -e0 fileArchive.zip listOfClassFiles<BR>
</code>
<P>
如您使用的是 Info-Zip 压缩程序:
<P>
<code>
zip -0 fileArchive.zip listOfClassFiles<BR>
</code>
<P>
请注意,在这两种情况下,命令行标志包含的是数字 0,而不是字母 O。
<P>
要在 HTML 文件中使用 .zip 档案文件,可在 <em>applet</em> 部分指定 <em>archive</em> 标记:
<P>
<code>
<applet name="Hello" code="HelloWorld" width="50" height="50"<BR>
codebase="http://www.foo.com/classes"<BR>
archive="hello.zip"><BR>
</applet><BR>
</code>
<P>
别急 -- 我们还可以更进一步!您可以创建 .cab 和 zip 档案文件,并同时支持<em>这两种格式</em>;这意味着 Navigator 和 Internet Explorer 用户都将获得更快的 applet 下载速度。不必为使用这两种浏览器的旧版本(或是任何其他浏览器)的用户担心,因为他们仍将通过慢速的老方法来获取 applet 的所有类。将以上内容综合起来:
<P>
<code>
<applet name="Hello" code="HelloWorld" width="50" height="50"<BR>
codebase="http://www.foo.com/classes"<BR>
archive="hello.zip"><BR>
<param name=codebase value="http://www.foo.com/classes"><BR>
<param name=cabbase value="hello.cab"><BR>
</applet><BR>
</code>
<P>
现在您可以用 .cab 和 zip 档案文件来解决下载速度慢的问题,我想我应该告诉您,JavaSoft 在 JDK 1.1 中已定义了一种新的档案文件格式,您可以用这种新的格式将所有图像文件、音频文件和类文件打包在一个文件中(请参阅<a href="#resources">参考资源</a>部分)。JavaSoft 将这种格式称为 <strong>J</strong>ava <strong>Ar</strong>chive (JAR)。<APPLET> HTML 标记已被修改,以便用 <em>archives</em> 参数来处理这种 JAR 格式。我把将这三种档案文件格式整合到一起的工作留给您。
<!-- end body text -->
<P>
<A NAME="resources"><STRONG>参考资源</STRONG></A>
<UL>
<LI>有关 JavaSoft 的 JDK 版本 1.1 的信息,请访问:
<BR><A HREF="http://java.sun.com/products/JDK/1.1/designspecs/index.html">http://java.sun.com/products/JDK/1.1/designspecs/index.html</A>
<LI>有关 JAR 档案文件的信息,请访问:
<BR><A HREF="http://java.sun.com/products/JDK/1.1/designspecs/jar/manifest.html">http://java.sun.com/products/JDK/1.1/designspecs/jar/manifest.html</A>
<LI>以下网址有 applet 标记的一个示例:
<BR><A HREF="http://java.sun.com/products/JDK/1.1/docs/guide/misc/applet.html">http://java.sun.com/products/JDK/1.1/docs/guide/misc/applet.html</A>
</UL>
</td>
</tr>
</td>
</tr>
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?