|
我有一個(gè)使用deployJava腳本部署的WebStart applet. jnlp文件如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jnlp codebase="" href="launch.jnlp" spec="1.0 ">
<information>
<title>someApp</title>
<vendor>someCompany</vendor>
<homepage />
<description>someDescription</description>
<description kind="short">someShortDescription</description>
<offline-allowed/>
</information>
<update check="background"/>
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.5 "/>
<jar href="mainJar.jar" main="true"/>
<jar href="lib1.jar"/>
<jar href="lib2.jar"/>
<jar href="lib3.jar"/>
<jar href="platform.jar"/>
<jar href="plugin.jar"/>
<jar href="slf4j-api-1.6.1.jar"/>
<jar href="slf4j-simple-1.6.1.jar"/>
</resources>
<applet-desc height="1" main-class="com.companyName.applet.appletClass" name="appletName" width="1">
</applet-desc>
</jnlp>
如您所見(jiàn),我的applet大小為1×1,因此我不想顯示任何內(nèi)容.它只是用于向javascript公開(kāi)一些java方法.所以,例如,如果我進(jìn)行javascript調(diào)用
//javascript code
var applet = document.getElementById('appletName');
我得到applet的有效句柄,我能夠在javascript中調(diào)用它的方法,如下所示:
//javascript code
applet.doStuff();
當(dāng)然,每個(gè)applet都定義了isActive()方法,因此在我的javascript代碼中,如果applet完全加載,我可以像這樣檢查:
//javascript code
function isFullyLoaded()
{
if ( !applet.isActive() ){
setTimeout('isFullyLoaded()',1000);
}
else
{
//do nice stuff requiring the applet is loaded
}
}
但是,由于applet的加載可能需要一段時(shí)間,因此我希望獲得其加載的進(jìn)度指示.快速瀏覽一下Sun(或Oracle,如果你是如此傾向),可以看出這一點(diǎn): http://download.oracle.com/javase/tutorial/deployment/applet/customProgressIndicatorForApplet.html
但是,這意味著我想在applet加載時(shí)顯示加載欄或任何內(nèi)容.我不喜歡applet外觀,這就是為什么我只想用javascript輪詢(xún)applet加載,就像在某個(gè)時(shí)間間隔上那樣:
//javascript code
alert(applet.getLoadingProgress());
我應(yīng)該怎么做,我應(yīng)該更改jnlp聲明或類(lèi)似的東西.任何指針或評(píng)論將不勝感激.請(qǐng)注意,我不想要自定義進(jìn)度條,只是一個(gè)結(jié)構(gòu),以便我可以在加載過(guò)程中使用javascript輪詢(xún)進(jìn)度.
干杯.
編輯: @amol 我將提醒您注意JNLP部署applet和應(yīng)用程序,在加載期間,每當(dāng)調(diào)用一個(gè)通用的DownloadServiceListener類(lèi)的方法進(jìn)度(java.net.URL url,java.lang.String版本,long readSoFar,long total,int overallPercent)下載所需的罐子.了解罐子總數(shù)和尚未下載的罐子數(shù)量將成為完美的進(jìn)步指標(biāo).我還想提醒您注意,如果您調(diào)試JNLP部署,您將看到這些方法被調(diào)用并記錄為網(wǎng)絡(luò)級(jí)事件.所以,我的問(wèn)題是如何使用javascript來(lái)掌握這些方法,因此我可以對(duì)進(jìn)度有一些估計(jì),因?yàn)槲也幌M脩?hù)查看java控制臺(tái)來(lái)估計(jì)進(jìn)度.我不想也顯示一個(gè)不確定的進(jìn)度加載器,因?yàn)閷?shí)現(xiàn)它是輕而易舉的,但沒(méi)有任何實(shí)際用途. 解決方法: 我不知道如何進(jìn)行民意調(diào)查,但我過(guò)去用來(lái)實(shí)現(xiàn)你所描述的方法如下 –
>加載小程序時(shí)(在我的情況下 我通常會(huì)插入相關(guān)的html DOM點(diǎn)擊按鈕或 某事),展示你的 javascript / html具體加載 指示符. >當(dāng)applet加載時(shí),它會(huì)回調(diào)一個(gè) javascript方法. JS現(xiàn)在知道applet已完全加載,取下加載指示器并進(jìn)行任何進(jìn)一步的JS-> applet通信等.
(使用這種方法無(wú)法顯示確定的進(jìn)度條.但是一個(gè)掩蓋整個(gè)html主體或不確定進(jìn)度條的通用加載指示器是非常可能的,并且很容易實(shí)現(xiàn)) 來(lái)源:https://www./content-1-368851.html
|