1

私はアプレットを開発し、何らかのタスクが終了したらリロードします。私はjavascriptを使用してそれを達成しました:

function startApplet() {
  // code to setup "object" tag
  var appletHtml = '<object name= ....'
  document.getElementById("applet_tag").innerHTML = appletHtml;
}

function restartApplet() {
  if (document.getElementById("applettag")) {
    document.getElementById("applet_tag").innerHTML = '';
  }
  startApplet();
}

一部のマシンでは完全に機能しますが、他のマシンでは JavaScript コードが実行されますが、アプレットはリロードされません (現在のインスタンスが消え、新しいインスタンスが開始されます)。

<param name="cache_option" value="no">jqueryコードを使用または使用して、アプレットdivをリセットしようとしましたが、成功しませんでした。

この問題について知っている人、またはページを更新せずにアプレットをリロードする別の方法を知っている人はいますか?


編集:問題に関する詳細情報:

Java コンソールを見ると、そのアプレットは効果的に再起動すると推測されますが、新しい JVM インスタンスでアプレットを再起動する必要があると思います。以下に、Java コンソールの抜粋を添付しました。

basic: Applet loaded.
...
basic: Applet initialized
basic: Starting applet
...
basic: Applet started
basic: Told clients applet is started
basic: Starting applet teardown
basic: Finished applet teardown
basic: Removed progress listener: sun.plugin.util.ProgressMonitorAdapter@d062ed
basic: PluginMain.unregisterApplet: 1 from mananger sun.plugin2.applet.Applet2Manager@ca5165

basic: Added progress listener: sun.plugin.util.ProgressMonitorAdapter@185c219
basic: Plugin2ClassLoader.addURL parent called for http://...
basic: Applet loaded.
basic: Applet resized and added to parent container
basic: PERF: AppletExecutionRunnable - applet.init() BEGIN ; jvmLaunch dt 359544 us, pluginInit dt 55298741 us, TotalTime: 55658285 us
Applet inicializado
basic: Applet initialized
basic: Starting applet
basic: completed perf rollup
basic: Applet made visible
basic: Applet started
basic: Told clients applet is started
4

2 に答える 2

1

アプレット展開の公式展開ドキュメントであるseparate_jvmアプレットパラメータを使用して、 new jvmのアプレットで解決策を見つけました。ありがとうございました。

于 2013-06-10T18:21:11.880 に答える
0

startApplet を直接呼び出す代わりに、15 秒のタイムアウトを設定します。これにより、jvm を終了できます。

function restartApplet() {
    if (document.getElementById("applettag")) {
        document.getElementById("applet_tag").innerHTML = '';
    }
    setTimeout("startApplet()", 15000);

}

新しい JVM これは試していませんが、できます

var apltIdCnt = 1
function startApplet() {
    // code to setup "object" tag
    var appletHtml = '<div id=aplInner'  + apltIdCnt + ' <object name= ....'
    document.getElementById("applet_tag").innerHTML = appletHtml;
    apltIdCnt += 1 ;//or apltIdCnt++
}

これは、他のタグに異なる jvm がある場合に役立つ可能性があります

于 2013-06-08T16:39:59.053 に答える