mikdoe
Moderator
Guten Morgen!
Bin selbst nicht sicher, ob die Frage in diesem Unterforum richtig ist
Wir sprechen hier nie über Umgang mit Applets. Sonst verschiebe ich es.
Also, ich habe mir ein Java Applet erstellen lassen. Läuft prima! Allerdings möchte ich, dass das Applet pro Browser nur einmal läuft, egal wieviele Instanzen (Fenster oder Tabs) vom Browser geöffnet sind.
Daher suche ich eine Möglichkeit, mit HTML/JS oder wie auch immer abzufragen, ob das Applet von diesem Browser bereits einmal gestartet wurde und läuft. In dem Fall möchte ich es kein weiteres mal starten oder noch besser das andere erstmal beenden.
Der Entwickler hat mir eine Abfragemöglichkeit gebaut: var ret = domnodename.checkApplet();
Da weiß ich aber nicht, wie ich das nutzen kann, ohne den domnodename des <object> in dieser Instanz zu haben. Und wenn ich das <object> lade, um diesen domnodename zu haben ist das Applet bereits ein weiteres mal gestartet, also zu spät.
Und document.domnodename.isActive() funktioniert auch nur, wenn das <object> als Node in dieser Instanz besteht. Ich möchte aber andere Instanzen abfragen.
Der Applet Programmierer verweist mich auf Javascript, er sagt, er kann das im Applet selbst nicht abfragen, ob es schon läuft. Sonst wäre es ja einfach: Applet startet, schaut nach, ob es zweimal läuft, beendet entweder das andere oder sich selbst.
Bin für alle Mitdenker und Hinweise dankbar, auch Workarounds!
Denn meine Webseite ist dafür ausgelegt, in mehreren Instanzen aufgerufen zu werden und das ist total schlecht, wenn das Applet dann zig mal läuft. Denn es handelt sich um ein Terminerinnerungsapplet, das heißt, im Systray gehen Meldungen auf, wenn ein Termin ansteht. Das will man natürlich nur einmal haben und nicht zig mal
Hatte mir schon überlegt, dass die erste das Applet startende Instanz alle paar Sekunden ein "alive" per Ajax an den Server pollt. Somit kann ich vom Server aus steuern, ob eine neue Instanz das Applet starten darf. Aber kann es das wirklich sein? Ich habe letztens erst den Traffic reduziert, indem ich die Uhr nach Korbinian's Tipps geändert habe, dass sie nur noch stündlich pollt und nicht mehr minütlich. Und den Traffic wollte ich jetzt eigentlich nicht wieder erhöhen, wenn es nicht unbedingt sein muss.
Außerdem habe ich dann das Problem: 1. Instanz ist offen, Applet läuft, 2. Instanz wird vom Benutzer geöffnet. Nun schließt der Anwender die 1. Instanz, Applet wird geschlossen und ist weg. Wenn der jetzt nicht drauf achtet und für den Rest des Tages in dem Glauben an die Erinnerungen Instanz 2 offen stehen lässt wird er nie eine Erinnerung bekommen, denn das Applet ist ja weg. Es sei denn, alle Instanzen würden minütlich gegen den Server pollen und fragen, ob sie das Applet starten sollen. Ist das nicht zu dämlich? Widerstrebt mir, ich hoffe auf eine bessere Lösung.
Für Google fand ich leider nicht die richtigen Suchbegriffe, zumindest haben mir die Ergebnisse nichts gebracht.
Danke euch
Bin selbst nicht sicher, ob die Frage in diesem Unterforum richtig ist
Wir sprechen hier nie über Umgang mit Applets. Sonst verschiebe ich es.
Also, ich habe mir ein Java Applet erstellen lassen. Läuft prima! Allerdings möchte ich, dass das Applet pro Browser nur einmal läuft, egal wieviele Instanzen (Fenster oder Tabs) vom Browser geöffnet sind.
Daher suche ich eine Möglichkeit, mit HTML/JS oder wie auch immer abzufragen, ob das Applet von diesem Browser bereits einmal gestartet wurde und läuft. In dem Fall möchte ich es kein weiteres mal starten oder noch besser das andere erstmal beenden.
Der Entwickler hat mir eine Abfragemöglichkeit gebaut: var ret = domnodename.checkApplet();
Da weiß ich aber nicht, wie ich das nutzen kann, ohne den domnodename des <object> in dieser Instanz zu haben. Und wenn ich das <object> lade, um diesen domnodename zu haben ist das Applet bereits ein weiteres mal gestartet, also zu spät.
Und document.domnodename.isActive() funktioniert auch nur, wenn das <object> als Node in dieser Instanz besteht. Ich möchte aber andere Instanzen abfragen.
Der Applet Programmierer verweist mich auf Javascript, er sagt, er kann das im Applet selbst nicht abfragen, ob es schon läuft. Sonst wäre es ja einfach: Applet startet, schaut nach, ob es zweimal läuft, beendet entweder das andere oder sich selbst.
Bin für alle Mitdenker und Hinweise dankbar, auch Workarounds!
Denn meine Webseite ist dafür ausgelegt, in mehreren Instanzen aufgerufen zu werden und das ist total schlecht, wenn das Applet dann zig mal läuft. Denn es handelt sich um ein Terminerinnerungsapplet, das heißt, im Systray gehen Meldungen auf, wenn ein Termin ansteht. Das will man natürlich nur einmal haben und nicht zig mal
Hatte mir schon überlegt, dass die erste das Applet startende Instanz alle paar Sekunden ein "alive" per Ajax an den Server pollt. Somit kann ich vom Server aus steuern, ob eine neue Instanz das Applet starten darf. Aber kann es das wirklich sein? Ich habe letztens erst den Traffic reduziert, indem ich die Uhr nach Korbinian's Tipps geändert habe, dass sie nur noch stündlich pollt und nicht mehr minütlich. Und den Traffic wollte ich jetzt eigentlich nicht wieder erhöhen, wenn es nicht unbedingt sein muss.
Außerdem habe ich dann das Problem: 1. Instanz ist offen, Applet läuft, 2. Instanz wird vom Benutzer geöffnet. Nun schließt der Anwender die 1. Instanz, Applet wird geschlossen und ist weg. Wenn der jetzt nicht drauf achtet und für den Rest des Tages in dem Glauben an die Erinnerungen Instanz 2 offen stehen lässt wird er nie eine Erinnerung bekommen, denn das Applet ist ja weg. Es sei denn, alle Instanzen würden minütlich gegen den Server pollen und fragen, ob sie das Applet starten sollen. Ist das nicht zu dämlich? Widerstrebt mir, ich hoffe auf eine bessere Lösung.
Für Google fand ich leider nicht die richtigen Suchbegriffe, zumindest haben mir die Ergebnisse nichts gebracht.
Danke euch