Autor Thema: Refresh im Web???  (Gelesen 4908 mal)

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Refresh im Web???
« am: 25.11.03 - 14:33:56 »
Hallo zusammen,

in einer Web-Datenbank habe ich ein ganz seltsames Problem:

Eine Maske soll über einfache Felder (Berechnet zur Anzeige) sprachabhängig sein, d. h. es gibt einfache Formeln der Art "wenn Sprache = Deutsch dann Adresse sonst Address". So oder so ähnlich. Die Begriffe werden aus einem Konfigurationsdokument gelesen was auch alles einwandfrei funktioniert.

Jetzt soll es aber möglich sein, mit Aktionsknöpfen zwischen den Sprachen hin- und herzuschalten. Und da gibt es Problem. Mittlerweile habe ich wahrscheinlich 20 verschiedene Ansätze versucht, alle mit dem gleichen Ergebnis. Nach dem Refresh hat er manchmal die richtige Sprache und manchmal nicht. Wenn ich ein manualles Aktualisieren des Frames im Browser mache, stimmt es immer.

Die Aktionsknöpfe sehen sinngemäß folgendermaßen aus:

@SetProfileField("Sprachprofil"; "Sprache"; "Deutsch"; @Username);
@Command([ViewRefreshFields]);
""

In der Maske lese ich die Sprache in einem Feld so aus:

@GetProfileField("Sprachprofil"; "Sprache"; @UserName)

Sieht eigentlich alles ganz easy aus, aber es klappt halt nur manchmal. Wenn ich so zwischen Deutsch und Englisch hin und herschalte, dann geht es zwei, drei mal gut, und dann bleibt dreimal Deutsch stehen und dann geht es wieder, usw...

Das Sprachfeld zeigt eine Sprache an. Wenn ich mir das Profildokument dann gleichzeitig im Notes ansehe, ist es aber geändert. Anscheinend hat das der Web-Browser oder der Notes-Server nicht mitbekommen.

Anstatt mit Profildokumenten habe ich es auch schon mit Konfigurationsdokumenten versucht. Weil ich dachte, es liegt vielleicht an der Geschwindigkeit zwischen @Set... und @GetProfileField habe ich eine Warteschleife eingebaut. Und, und, und... Hat alles nichts genützt immer wieder das gleiche Problem.

Hat schon einmal jemand so ein Problem gehabt und kann mir einen Lösungsvorschlag geben? Wäre echt nett, wenn mir da jemand helfen könnte.

Viele Grüße,

JR
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

Offline Myron

  • Aktives Mitglied
  • ***
  • Beiträge: 246
  • Geschlecht: Männlich
    • www.myphotoart.at
Re:Refresh im Web???
« Antwort #1 am: 25.11.03 - 14:40:41 »
ich weiß es zwar nicht aber einen versuch ist es doch wert..

vielleicht ist das ein cache probelm des browsers?

probier mal auf der seite dieses meta tag unterzubringen

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">

vielleicht hilfts :-)

Grüße
« Letzte Änderung: 25.11.03 - 14:41:09 von Myron »
Einst sagte mal ein IBMler zu Gates.. : Junger Mann, Geld macht man mit Hardware.. :-) Hohoho
--
http://www.myphotoart.at
http://www.similon.at

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re:Refresh im Web???
« Antwort #2 am: 25.11.03 - 14:53:35 »
Danke,

die idee mit dem Pragma-Tag war gut, habe sie auch gleich ausprobiert - funktioniert leider trotzdem nicht.

JR
« Letzte Änderung: 25.11.03 - 14:55:08 von jr »
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Refresh im Web???
« Antwort #3 am: 25.11.03 - 14:55:57 »
Scheint mir eher ein Server-Caching problem zu sein, aber das müsste man im Serverdokument abstellen, ob das Sinn macht, ist fraglich.

Andere Frage: Warum rufst Du bei Sprachwechsel nicht ein neues/anderes Dokument auf oder verwendest eine andere Maske? Das dürfte ein eventuelles Server-Cache Problem wahrscheinlich umgehen
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re:Refresh im Web???
« Antwort #4 am: 25.11.03 - 15:25:23 »
Der Kunde möchte dies über Konfigurationsdokumente lösen, weil dadurch jederzeit neue Sprachen hinzugefügt werden können, ohne ins Design zu wechseln. Ein neues Dokument öffnen ist so leider auch nicht möglich, weil der Anwender ja bereits ein paar Felder gefüllt haben kann.

Aber zur Idee mit dem Server-Cache: wo kann man das einstellen? Da gibt es ja dutzende Felder, die etwas mit dem cachen zu tun haben.

Im Voraus vielen Dank,

JR
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Refresh im Web???
« Antwort #5 am: 25.11.03 - 15:28:19 »
Sorry, kann ich im Moment auch nicht sagen .... bin immer zwischen zwei Testläufen hier drin und dazwischen eilt es ....

Müsste irgendwo unter den HTTP-Einstellungen sein ....
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Gandhi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 918
  • Geschlecht: Männlich
  • Domino for the masses
Re:Refresh im Web???
« Antwort #6 am: 25.11.03 - 15:30:35 »
Kannst Du das ganze nicht über Java Script lösen? Setzen der entsprechenden Strings hierüber? Dann muss das Dokument auch nicht neu geladen werden und die Informationen bleiben erhalten.
Der "Wenn ich" und der "Hätt' ich" das sind zwei arme Leut'
oder für den Süden:
Hatti Tatti Wari - san drei Larifari

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:Refresh im Web???
« Antwort #7 am: 25.11.03 - 15:38:49 »
Sicher besser, als den Servercache zu manipulieren
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Glombi

  • Gast
Re:Refresh im Web???
« Antwort #8 am: 25.11.03 - 15:50:18 »
Anstelle von Feldern kannst Du auch berechneten Text verwenden - mit den gleichen Formeln.

Ansonsten gibt es unter R6 noch die Funtkion @SetHTTPHeader. Damit kann man das Caching beeinflussen.

Andreas

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re:Refresh im Web???
« Antwort #9 am: 25.11.03 - 16:14:44 »
@Ghandi,

ich wüsste im nicht, wie ich auf ein Konfiguraitonsdokument über Java-Script zugreifen kann. Ich müsste wahrscheinlich erst die richtigen Sprach-Werte in ein Feld laden, wozu aber wieder auf das Profildokument zugegriffen werden muss, und dann habe ich wieder das gleiche Problem...

@Glombi,

auch mit berechnetem Text habe ich das gleiche Problem. Im Browser dürfte da wohl kein Unterschied zwischen berechnten Feldern und berechnetem Text bestehen.

Das Problem ist ja, dass der Wert des Profildokuments nicht richtig gezogen wird.

JR
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

Offline Gandhi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 918
  • Geschlecht: Männlich
  • Domino for the masses
Re:Refresh im Web???
« Antwort #10 am: 25.11.03 - 16:22:05 »
Warum lädst Du nicht die infragekommenden Phrasen in verschiedenen Sprachen - ist nur Text - und wenn es nicht exorbitant viel ist sollte das kein Problem sein.
Der "Wenn ich" und der "Hätt' ich" das sind zwei arme Leut'
oder für den Süden:
Hatti Tatti Wari - san drei Larifari

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re:Refresh im Web???
« Antwort #11 am: 25.11.03 - 17:02:56 »
Das wäre wahrscheinlich möglich. Aber es sind schon zwei Felder mit Namen vorhanden, deren Auswahlliste so groß ist, dass Anpassungen an beiden nicht mehr möglich waren, weil das Feld zu groß wurde.

Außerdem würde damit das eigentliche Problem nicht gelöst: Auch wenn ich alle Daten in einem Feld habe, brauche ich den Wert aus dem Profildokument, der mir sagt, welche Werte ich brauch. Und der ist halt manchmal falsch...

JR
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

Glombi

  • Gast
Re:Refresh im Web???
« Antwort #12 am: 25.11.03 - 17:13:10 »
Hast Du schon
@Command([ReloadWindow] )
probiert?

Du sagtest ja, dass ein manuelles Laden des Rahmens funktioniert.

Andreas

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re:Refresh im Web???
« Antwort #13 am: 25.11.03 - 17:20:15 »
Hatte ich bisher noch nicht versucht. Klappt aber leider auch nicht. Auch mit @Command([RefreshWindow]) funktioniert es nicht.

Wenn ich mit der rechten Maustaste in das Browserfenster klicke und "Aktualisieren" wähle, dann stimmt es...  ??? ??? ???

JR
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

Glombi

  • Gast
Re:Refresh im Web???
« Antwort #14 am: 25.11.03 - 17:23:53 »
Du darfst aber keine Profile verwenden, da die während der Browsersitzung gecached werden.

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re:Refresh im Web???
« Antwort #15 am: 25.11.03 - 17:49:43 »
Wie gesagt, habe ich es auch schon ohne Profildokumente versucht, mit dem gleichen Ergebnis.

Die Idee war:
Ein Konfigurationsdokument "Sprache" enthält für jeden Benutzer einen Eintrag der Form

Vorname Nachname=Sprache

z. B.

Donald Duck=Englisch
Gustav Gans=Deutsch

Der Code in den Aktionen:

all  := @DbLookup("":"NoCache"; "":""; "viewConfig"; "Sprache"; 2);
id   := @DbLookup("":"NoCache"; "":""; "viewConfig"; "Sprache"; 3);
user := @Name([CN]; @UserName);
lang := @Trim(@Right(all; user + "="));
old  := @Trim(@Replace(all; user + "=" + lang; ""));

@SetDocField(id; "value"; (user + "=" + "Deutsch") : old);
@Command([ReloadWindow]);
""


Der Code in der Maske:


all   := @DbLookup("":"NoCache"; "":""; "viewConfig"; "Sprache"; 2);
user := @Name([CN]; @UserName);
lang := @Trim(@Right(all; user + "="));

@If(lang != ""; lang; "Deutsch")


Klappt aber auch nicht. Anscheinend kann ich nichts verändern, was ich kurz danach wieder auslesen möchte?

Also, so langsam bin ich am verzweifeln..

JR
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

Glombi

  • Gast
Re:Refresh im Web???
« Antwort #16 am: 25.11.03 - 18:13:54 »
Sehe ich das richtig, dass Du die Spracheinstellungen für alle Anwender in einem einzigen Konfig-Dokument machst? Das gibt aber bestimmt Speicherkonflikte. Ausserdem könnte das Textfeld mit den Namen und Sprachen größer 32 K werden.
Besser und performanter wäre es, pro Anwender ein Konfig.-Dokument zu machen.

Wie sieht denn der Code für die Felder aus, bswp. Adresse?

Ausserdem würde ich mal folgendes machen:
@SetDocField(id; "value"; (user + "=" + "Deutsch") : old);
@Command([ReloadWindow]);
@Command([ViewRefreshFields]);

oder
@SetDocField(id; "value"; (user + "=" + "Deutsch") : old);
@Command([ViewRefreshFields]);
@Command([ReloadWindow]);

Andreas
« Letzte Änderung: 25.11.03 - 18:17:53 von Glombi »

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re:Refresh im Web???
« Antwort #17 am: 26.11.03 - 08:19:43 »
Zuerst einmal vielen Dank für die vielen Tipps.

Ich habe bereits alle Kombinationen mit ReloadWindow, RefreshWindow und ViewRefreshFields durchprobiert - klappt alles nicht. Auch mehrere Aufrufe hintereinander ändern nichts.

Mit dem Konfigurationsdokument hast Du sicher recht. Das würde ich so auch nicht ausliefern, aber es war nur ein weiterer Test, weil das mit den Profildokumenten nicht geklappt hat. Aber ich denke, wenn es mit einem Konfigurationsdokument nicht klappt wird es mit mehreren wohl auch nicht klappen.

Das ursprüngliche Problem ist und bleibt das Einlesen des Sprachwertes, der gerade zuvor erst gespeichert wurde (Dokument, Profildokument, Environment (geht nicht im Web), ...).

Danke,

JR
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

Glombi

  • Gast
Re:Refresh im Web???
« Antwort #18 am: 26.11.03 - 08:36:20 »
Hast Du eine Möglichkeit, das mal unter einem R5 Server zu testen. Ich habe die leidvolle Erfahrung gemacht, dass der HTTP Task in R6 "überoptimiert" wurde.

Dazu hatte ich bzgl @SetHTTPHeader mal was gepostet. Siehe
http://www.atnotes.de/index.php?board=2;action=display;threadid=10961;start=0

Andreas
« Letzte Änderung: 26.11.03 - 08:38:27 von Glombi »

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re:Refresh im Web???
« Antwort #19 am: 26.11.03 - 09:48:52 »
Einen R5-Server habe ich seit letzter Woche nicht mehr, da habe ich jetzt endlich umgestellt.  Nur noch R6 bzw. R6.5 (auf Windows und Linux).

Würde aber auch nichts nutzen. Ich kann kaum von meinem Kunden verlangen, dass er seine R6-Server wieder abstellt... ;)

Das mit dem @SetHTTPHeader("Expires"; "0") habe ich auch getestet. Dut ach net.

JR
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz