Domino 9 und frühere Versionen > ND8: Entwicklung - XPages
Erstellen eines Dokuments beeinflusst Frameset im IE
Peter Klett:
Hallo,
habe nun endlich auch eine kleine "Anwendung" als mein Erstlingswerk mit XPages gebastelt. Simpel und schlicht und funktioniert grundsätzlich soweit.
Es handelt sich dabei um ein Gästebuch für unsere private Homepage, die ansonsten zu Fuss mittels Editor direkt in html geschrieben ist. Diese Homepage hat ein dreigeteiltes Frameset. Aus der Navigatorseite kann man das Gästebuch mit einem Link <a href="http://..../gb.nsf" target="home">.... im "Haupt"-Frame aufrufen. Alle anderen Seitenaufrufe erfolgen genauso.
Das geht problemlos, solange man sich nur die Einträge im Gästebuch anschaut. Erstellt man aber ein Dokument mittels Schaltfläche (egal, ob man es speichert, oder nicht), öffnen danach alle Links aus dem Navigator ein neues Browserfenster, anstatt die Seite im Frame "home".
Habe gerade mal die Seite mit Firefox geöffnet (bisher IE 8 ), da funktioniert es, dafür ist Firefox grottenlahm und man muss die Seiten zweimal aufrufen, bevor alle Gestaltungselemente korrekt dargestellt werden (oder ich hätte noch länger warten müssen?).
Kann ich das Verhalten des IE irgendwie beeinflussen? Die XPage weiß ja eigentlich nicht, in welchem Frame sie dargestellt wird, und das sollte der auch völlig wurscht sein. Wie kann es sein, dass eine Aktion, die innerhalb eines Frames ausgeführt wird, das Verhalten eines anderen, davon eigentlich überhaupt nicht betroffenen, Frames so stört? Es scheint so, dass der Frame "home" nach dem Erstellen des Dokuments nicht mehr bekannt ist.
Sven Hasselbach:
Bezüglich der Frames möchte ich auf diese Antwort verweisen: http://atnotes.de/index.php/topic,46897.msg301734.html#msg301734
--- Zitat ---Generell gilt aber Framesets im Web sind pfui.
--- Ende Zitat ---
Wegen der Performance: Welche Domino-Version setzt Du ein?
Peter Klett:
Danke für den Link.
Klar, dass ich immer die Dinge nutze, die pfui sind :). Aber unsere private Homepage hat seit 1995 strukturell den gleichen Aufbau, und die ändere ich so schnell auch nicht (nenne es konservativ, faul oder überlastet, passt alles ;)). Für meine Zwecke reicht das erstmal. Komisch finde ich es trotzdem.
Zur Performance:
Ich benutze 8.5.3, kann aber mit der www.Adresse nicht direkt auf den Server zugreifen, wenn ich mich im lokalen Netz befinde, muss dann eine Netzwerkadresse verwenden (etwa so: http://Server:8080/gb.nsf/). Wir haben da mit dem Router, DNS, SBS usw. wild rumgebogen, damit das überhaupt alles zusammen auf meinem kleinen Server läuft, ohne sich gegenseitig zu stören. Deshalb kann ich nur mit einer Verbindung testen, die außerhalb meines Netzwerkes ist, und die ist bekanntermaßen recht gemütlich. Trotzdem ist der IE dabei schneller als der Firefox. Würde ich jetzt erstmal ignorieren.
Sven Hasselbach:
Vom "Pfui" aus Design-technischen Dingen mal abgesehen, könnte ich mir vorstellen, das es hier wg. dem JavaScript bei XPages zu Problemen mit Frames kommt.
Wie sieht es denn mit anderen IE-Versionen aus?
Wg. der Performance: Mit 8.5.3 gibt es m.W. keine Probleme mehr mit Parallelen Requests (also dem Abruf von mehreren XPages pro User). In den Versionen davor wurde jeder Request nacheinander abgearbeitet, was in Frames natürlich fatal ist.
Hier ein paar Infos zu diesem Thema http://www.mindoo.de/web/blog.nsf/dx/17.07.2011101855KLEBRW.htm
Kannst Du ein wenig Sourcecode Posten, dann kann man da vielleicht eher was nachvollziehen.
Grüße aus Taunusstein
Sven
Peter Klett:
Hallo Sven,
das ist der Code von dem Button
<xp:button value="Neuer Eintrag" id="button1">
<xp:eventHandler event="onclick" submit="true"
refreshMode="complete">
<xp:this.action>
<xp:openPage name="/eintrag.xsp" target="newDocument"></xp:openPage>
</xp:this.action>
</xp:eventHandler>
</xp:button>
Nachdem man den gedrückt hat, tritt das Phänomen auf. Um nicht missverstanden zu werden, das Problem tritt außerhalb von Notes auf, aber nur nach Drücken des Buttons.
Die Homepage ist so aufgebaut (nur HTML-Dateien, kein Notes):
<frameset rows="65,*" >
<frame name="Kopf" src="kopf.htm" scrolling="NO">
<frameset cols="220,*">
<frame name="Navigator" src="navigat.htm" scrolling="NO">
<frame name="Home" src="home.htm">
</frameset>
</frameset>
Die Links, um die es geht, befinden sich in der navigat.htm und starten die Seiten im Frame "Home"
<TABLE CLASS=TABELLE Border=0 align=left>
<TR>
<TD COLSPAN=3><A HREF="home.htm" target="Home">Homepage</A></TD>
</TR>
genauso, wie der Aufruf der Notes-Datenbank (XPages).
<TR>
<TD COLSPAN=3><A HREF="http://www.baleit.no/gb.nsf" target="Home">Gästebuch</A></TD>
</TR>
In der DB befindet sich eine XPage, die auf einer Ansicht basiert, diese wird mit der Datenbank gestartet. Dokumente daraus können ReadOnly gelesen werden. Nur wenn der o.g. Button gedrückt wurde, finden die Links das Target "Home" nicht mehr. Das gilt für die normalen Seiten (z.B. home.htm) genauso, wie für die Notes-Datenbank. Gebe ich dann im Browser wieder die Startseite ein (lade also die Homepage komplett neu), ist alles in Ordnung bis zum nächsten Klick auf den Button.
Wer das nachvollziehen möchte, kann das gerne live ansehen (bitte keine zu derbe Kritik an der Seite, ich weiß, dass die nicht wirklich schön und schon reichlich verstaubt ist, aber sie erfüllt Ihren Zweck für die kleine Lesergruppe :) )
http://home.online.no/~peterkle
Links unten steht "Gästebuch", dann auf den Button "Neuer Eintrag", das reicht. Es muss nichts eingetragen werden, ab Klick gehen alle Links in einem neuen Fenster auf (wohlgemerkt im IE 8, nicht im Firefox. Andere Browser habe ich im Moment nicht).
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln