避免不必要的更新检查
富 Internet 应用程序(RIA)本地缓存以缩短启动时间。但是,在启动 RIA 之前,启动软件会检查以确保 RIA 的 Java 网络启动协议(JNLP)文件中引用的每个 JAR 文件都是最新的。换句话说,启动软件可确保您运行的是 RIA 的最新版本,而不是较早的缓存副本。这些更新检查可能需要几百毫秒的时间,具体取决于 JAR 文件的数量和网络速度。使用本主题中描述的技术可以避免不必要的更新检查,并可以延 LongRIA 的启动时间。
Note:
此处,术语“启动软件”用于统称 Java 插件软件和 Java Web Start 软件。 Java 插件软件启动 Servlets,而 Java Web Start 软件启动 Java Web Start 应用程序。
利用版本下载协议
您可以利用版本下载协议消除不必要的版本检查。请参阅以下步骤以启用此协议。
- 重命名 JAR 文件以包含具有以下命名约定的版本号后缀:
<JAR file name>__V<version number>.jar
例如,将DynamicTreeDemo.jar
重命名为DynamicTreeDemo__V1.0.jar
。
- 在 JNLP 文件中,为每个 JAR 文件指定一个版本,并将
jnlp.versionEnabled
属性设置为true
。
<resources>
<!-- Application Resources -->
<j2se version="1.6+"
href="http://java.sun.com/products/autodl/j2se"
max-heap-size="128m" />
<jar href="DynamicTreeDemo.jar"
main="true" version="1.0"/>
<jar href="SomeOther.jar" version="2.0"/>
<property name="jnlp.versionEnabled"
value="true"/>
<!-- ... -->
</resources>
启用jnlp.versionEnabled
属性时,启动软件仅执行一次更新检查,以确保 JNLP 文件是最新的。该软件会将 JNLP 文件中指定的版本号与相应的 JAR 文件版本进行比较(根据步骤 1 中提到的命名约定),并仅更新过时的 JAR 文件。这种方法之所以有效,是因为仅通过网络进行 JNLP 文件的更新检查。所有其他版本检查均在本地进行。
如果找不到具有正确版本号的文件,启动软件将try加载默认的 JAR 文件(例如DynamicTreeDemo.jar
)。
在后台执行更新检查
如果对用户立即运行 RIA 的最新版本并不重要,则可以指定所有更新检查都应在后台进行。在这种情况下,启动软件将启动本地缓存的副本以立即使用,并在后台下载较新版本的 RIA。下次用户try使用 RIA 时,将启动较新版本的 RIA。要启用后台更新检查,请将以下行添加到您的 JNLP 文件中:
<update check='background'/>
以下代码片段显示了启用了后台更新检查的示例 JNLP 文件:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="" href="">
<information>
<title>Applet Takes Params</title>
<vendor>Dynamic Team</vendor>
</information>
<resources>
<!-- Application Resources -->
<j2se version="1.6+" href=
"http://java.sun.com/products/autodl/j2se"/>
<jar href="applet_AppletWithParameters.jar"
main="true" />
</resources>
<applet-desc
name="Applet Takes Params"
main-class="AppletTakesParams"
width="800"
height="50">
<param name="paramStr" value="someString"/>
<param name="paramInt" value="22"/>
</applet-desc>
<update check="background"/>
</jnlp>