Ergebnis 1 bis 8 von 8
  1. #1
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.725

    Java Applet abfragen

    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

  2. #2
    rico2009 Guest

    AW: Java Applet abfragen

    Sehr gute Frage, würde mich auch mal interessieren.

    Aber mal was anderes: Ich dachte Java-Applets sind so gut wie ausgestorben. (Sicherheitsbedenken und so) Täusche ich mich hier?

  3. #3
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.725

    AW: Java Applet abfragen

    Zitat Zitat von rico2009 Beitrag anzeigen
    Aber mal was anderes: Ich dachte Java-Applets sind so gut wie ausgestorben. (Sicherheitsbedenken und so) Täusche ich mich hier?
    Jo, eine Zeit lang wurde mal versucht, Java generell tot zu reden. Aber es gibt wirklich echte Lücken zwischen Betriebssystem und Browser. Ich wüsste nicht, was diese Lücke besser ausfüllt als Java. Als lokale Anwendung finde ich Java im übrigen auch nicht schlecht, z.B. Onlinebanking Hibiscus. Du bist halt relativ plattformunabhängig. Wer oder was kann das sonst noch bieten, wenn es nicht im Browser laufen soll?

    Und Sicherheitsbedenken sind nur ein Argument für ganz faule oder ganz doofe. Mittlerweile kann man nämlich in der Java Konsole fast gleiche Einstellungen vornehmen wie im Browser. Mit Sicherheitsstufen und vertrauenswürdigen Ausnahmen usw.
    Geändert von mikdoe (13-03-2014 um 15:30 Uhr)

  4. #4
    rico2009 Guest

    AW: Java Applet abfragen

    Zitat Zitat von mikdoe Beitrag anzeigen
    Als lokale Anwendung finde ich Java im übrigen auch nicht schlecht, z.B. Onlinebanking Hibiscus. Du bist halt relativ plattformunabhängig. Wer oder was kann das sonst noch bieten, wenn es nicht im Browser laufen soll?
    Das stimmt wohl.

    Ich habe mal ein wenig gegooglet und folgendes gefunden:
    1. Detect if an Applet is ready - Real's Java How-to Vielleicht hilft der weiter
    2. Ich habe in einem anderen Forum folgendes gefunden:
    [...] Der erte Aufruf des Applets ist aus JavaScript heraus eine eigene initialize-Methode. [...]
    könntest du das Applet nicht auch mit JS starten, dann wüsstest du wann es gestartet wurde und wann nicht.

  5. #5
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.706

    AW: Java Applet abfragen

    Was mir jetzt noch einfallen würde wäre, dass du in einem Cookie (oder auch localStorage) speicherst, ob gerade ein Applet offen ist. Wenn das Fenster, das das Applet beinhaltet, geschlossen wird, änderst du das im onbeforeunload, und in den anderen Fenstern überprüfst du periodisch, ob das Applet noch offen ist. Damit hast du keinen Request an den Server.

    Aber eine gescheite Fenster zu Fenster Kommunikation bekommst du im allgemeinen Fall einfach nicht hin - nur wenn du irgendwelche Beziehungnen zwischen den Fenstern hast (sowas wie window.opener). Kannst du solche Beziehungen voraussetzen?

    Oder gibt es bei dir nicht eine Hauptseite, die einfach immer offen bleibt und das Applet beinhaltet?

    Wenn du nicht alle Browser unterstützen musst, könntest du auch mit Browserplugins arbeiten.

    Zitat Zitat von mikdoe Beitrag anzeigen
    Und Sicherheitsbedenken sind nur ein Argument für ganz faule oder ganz doofe. Mittlerweile kann man nämlich in der Java Konsole fast gleiche Einstellungen vornehmen wie im Browser. Mit Sicherheitsstufen und vertrauenswürdigen Ausnahmen usw.
    Also wenn ein Browserplugin unbemerkt beliebigen Code auf meiner Maschine ausführen kann, dann muss es weg.

    Als lokale Anwendungsplattform find' ich Java aber auch nicht so schlecht (wenn ich es nicht selbst programmieren muss...).

  6. #6
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.725

    AW: Java Applet abfragen

    Zitat Zitat von kkapsner Beitrag anzeigen
    Was mir jetzt noch einfallen würde wäre, dass du in einem Cookie (oder auch localStorage) speicherst, ob gerade ein Applet offen ist. Wenn das Fenster, das das Applet beinhaltet, geschlossen wird, änderst du das im onbeforeunload, und in den anderen Fenstern überprüfst du periodisch, ob das Applet noch offen ist. Damit hast du keinen Request an den Server.
    Ja, das ist auch eine gute Idee.
    Frage: Ist localStorage browserübergreifend möglich? Müsste doch, ist ja nur eine Datei, oder? Dann würde ich das nämlich den Cookies bevorzugen. Wäre auch ein guter Anlass, sich damit mal zu beschäftigen.
    Aber der IE 8 würde dann vermutlich rausfallen, oder kann man dem auch irgendwie localStorage beibringen?

    Zitat Zitat von kkapsner Beitrag anzeigen
    Aber eine gescheite Fenster zu Fenster Kommunikation bekommst du im allgemeinen Fall einfach nicht hin - nur wenn du irgendwelche Beziehungnen zwischen den Fenstern hast (sowas wie window.opener).
    Hab ich befürchtet

    Zitat Zitat von kkapsner Beitrag anzeigen
    Kannst du solche Beziehungen voraussetzen?
    Nein, auf keinen Fall. Der Benutzer öffnet die Seite auch selbständig in einer weiteren Instanz.

    Zitat Zitat von kkapsner Beitrag anzeigen
    Oder gibt es bei dir nicht eine Hauptseite, die einfach immer offen bleibt und das Applet beinhaltet?
    Nein, gefällt mir nicht, weil dann diese Seite ja auch wieder Traffic macht. Der Benutzer soll so wenig wie möglich und soviel wie nötig Instanzen der Seite offen haben. Eine extra Instanz nur für Termine würde auch benutzerseitig schief gehen. Im Benutzerkreis fehlt leider jegliches Verständnis für technische Zusammenhänge.

    Zitat Zitat von kkapsner Beitrag anzeigen
    Wenn du nicht alle Browser unterstützen musst, könntest du auch mit Browserplugins arbeiten.
    Was würde dir da vorschweben? Es müssen auf jeden Fall IE >= 8, Firefox, Chrome und Safari gehen.

    Zitat Zitat von kkapsner Beitrag anzeigen
    Also wenn ein Browserplugin unbemerkt beliebigen Code auf meiner Maschine ausführen kann, dann muss es weg.
    Deswegen sagte ich ja, man kann in der Java Konsole einstellen, was ausgeführt wird und was nicht.

    Zitat Zitat von kkapsner Beitrag anzeigen
    Als lokale Anwendungsplattform find' ich Java aber auch nicht so schlecht (wenn ich es nicht selbst programmieren muss...).
    Selbst machen wollte ich das auch nicht. Obwohl es vom draufschauen eine schöne Sprache zu sein scheint.

  7. #7
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.706

    AW: Java Applet abfragen

    Nein. localStorage ist wie Cookies nicht browserübergreifend. Wenn du etwas browserübergreifendes haben willst, kommst du an einem Plugin nicht vorbei (z.B. ein Applet...), das irgendwo etwas auf die lokale Festplatte schreibst - aber so wirklich sicher und vertrauenserweckend klingt das für mich nicht. Aber wer will das denn? Wenn ich einen anderen Browser aufmache, will ich, dass der unabhängig von meinen anderen Browsern läuft. Und prinzipiell verwendet der Normalnutzer sowieso nur einen Browser.

    Bei dem Plugin ist mir sowas vorgeschwebt (eigentlich mehr ein AddOn), dass das Applet einfach im Plugin läuft und deswegen nur einmal aufgerufen wird. Auch haben AddOns mehr Rechte als normales JS auf einer Seite. Aber der IE 8 fällt da dann wieder raus.

  8. #8
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.725

Ähnliche Themen

  1. Java Applet
    Von totomoto im Forum Allgemeines
    Antworten: 5
    Letzter Beitrag: 09-11-2004, 09:58
  2. Java Applet was ist das
    Von Johnny1976 im Forum JavaScript
    Antworten: 6
    Letzter Beitrag: 31-12-2002, 16:20
  3. Java-Script in Java-Applet einbinden?
    Von bine im Forum JavaScript
    Antworten: 19
    Letzter Beitrag: 12-10-2002, 22:05
  4. java applet
    Von zemudo im Forum Allgemeines
    Antworten: 1
    Letzter Beitrag: 08-09-2002, 22:59
  5. Java Applet
    Von Shadow im Forum Allgemeines
    Antworten: 31
    Letzter Beitrag: 16-08-2001, 01:52

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •