作者: William Robert Stanek / 翻译:朱英
对<applet> 标识说再见,欢迎新标识<object>
在Html 4.0中,一种更好的把applets添加到网页中的方法是用<OBJECT> 标识取代<APPLET> 标识。<OBJECT> 标识是个多用途的标识,为当前和升级到未来的新类型媒体作预备。作为适合于多种类型媒体的通用标识,它的意义重大。网络仅仅经过短短几年的发展,已经出现在不少同媒体相关的标识,这些标识的作用是相同的。
事实上,单个的 <OBJECT> 标识可以用于取代如下标识:用于标识图象的 <IMG> 标识,用于标识小程序的 <APPLET> 标识,用于标识内部框架的<IFRAME>标识,以及用于标识内部对象的 <EMBED> 标识。
当你使用<OBJECT> 标识时,你通常需要告诉浏览器对象代码的类型,这是通过属性CODETYPE 来指明的。Java applets和应用程序的代码类型为application/java。而Java archives的代码类型为application/java-archive。假如你以前使用过基于网络的内容类型,你就会知道application/java和application/java-archive都是MIME (多用途的网际邮件扩充协议)类型,浏览器通常根据MIME 类型来决定如何处置不同类型的信息。
另外一个重要的区别是<APPLET> 标识的CODE 属性在<OBJECT> 标识中不存在。<OBJECT> 标识使用了名为CLASSID的属性,用于标明applet的URI (通用资源标识符)。URI同URL略有不同。对于URI,你告诉浏览器有关协议或者语言之后,就可以了解其结构,并对它进行操作。为了把URI的结构同 protocol/language区分开来,你可以使用冒号,如protocol:strUCture。
对于Java来说,URI的 protocol/language总是标明为java,对相应的结构采用哪一种处理方式取决于你在网页上如何使用applet。假如你打算直接调用applet的start()方法,你可以告诉浏览器start() 方法所在的路径,例如program.start:
<OBJECT CODETYPE="application/java" CLASSID="java:program.start" WIDTH="250" HEIGHT="250">
</OBJECT>
假如你打算在applet中调用一个标明的Java类,你可以标明该类。下面的例子中, applet的主类名为custom.class,该类在“java:”指示符之后标明。
<OBJECT CODETYPE="application/java-archive" CLASSID="java:custom.class" WIDTH="300" HEIGHT="300">
</OBJECT>
在你预备对诸如<APPLET> 这样的标识说再见时,你要知道在你的网页中只使用 <OBJECT> 标识的时机尚未成熟,原因是老版本的浏览器并不能识别<OBJECT> 标识,它并不知道如何显示和运行你的applets或者其他嵌入对象。
为了同老版本的浏览器保持兼容,在<OBJECT>的起始标识和 <OBJECT> 的结束标识之间可以插入<APPLET> 标识。务必在<OBJECT>的起始标识之后,立即加上<APPLET>标识。下面的例子中,假如浏览器不能识别出<OBJECT> 标识,浏览器就试着使用<APPLET> 标识。
<OBJECT CODETYPE="application/java-archive" CLASSID="java:custom.class" WIDTH="300" HEIGHT="300">
</APPLET CODE="custom.class" ARCHIVE="myclasses.jar" WIDTH="300" HEIGHT="300">
</APPLET>
</OBJECT>
在网络上,数据所占用的每个bit和每秒都是有价值的。把applet文件打包压缩成为一个archive文件,其效果的确大不一样。你现在了解了Java archive 的用法。我们将在以后将探讨更多的Java的应用例子。