Domino 9 und frühere Versionen > ND6: Entwicklung
Web Navigation, Pfad des Benutzers aufzeichnen
Thomas Schulte:
@thomas
ja und Nein Den Artikel kenne ich schon und da steht eigentlich nichts drin was mir weiterhilft.
@marinero
Nee, Business Logic ist in dem Weblayer definitiv nicht drin. Hier geht es ausschließlich um Navigation, die wie schon pompeius sagte "necesse est".
Das mit dem Hidden Frame ist zwar nur eine Krücke aber in dieser Umgebung eigentlich völlig egal.
Einzelne Moves des Users zur Laufzeit in den Frame reinzubekommen habe ich auch schon gelöst. D.h. wenn der Benutzer ein Dokument öffnet dann zechnet der Client den Absprungpunkt in der View und das Dokument das geladen wird auf und ich kriege auch einen automatischen "Return to that point of View" hin. Aber was ich noch nicht fertiggebracht habe, ist dem $$Return Dokument zu sagen, pass auf hier sind zwei Felder, eines mit einem View link und eines mit einem Array von Werten die deine verschiedenen Stationen seit dem du den View verlassen hast darstellen, mach da doch mal lauter Links draus die der Benutzer anklicken kann so das er an eine beliebige Stelle seinen Arbeitsablaufes zurückspringen kann.
Ach Ja und das mit dem Array muss ich auch noch lösen und Strukturieren muss ich die Daten auch noch so das sich zum Bleistift der Benutzer an seinen 4.ten Event zurückbeamt, von da aus weitermacht und dann wieder den 1-4 und alle neuen Events angezeigt bekommt, wenn er dann sein neues Dokument speichert.
Sch... Spiel
Thomas
animate:
hmm, also ich finde, da ist eine Menge Logik drin, auch wenn du gegenteiliger Meinung bist.
Wenn ich diese Problemstellung hätte, würde ich im Backend für jede Session eines Benutzers seine Navigation mitverfolgen (vermutlich mit Hilfe von http_referrer) und in der Datenbank speichern.
Diese gespeicherten Daten würde ich in jedem Dokument, das der Benutzer öffnet anzeigen (in einem berechneten Feld des Dokuments, nicht in einem Frame), und zwar als Breadcrumbs.
Das Verfolgen der Naviagtion und das Bereitstellen der richtigen + notwendigen Linkinformationen in jedem Dokument ist die von Axel genannte Business Logic.
animate:
also zumindest wäre das mein Lösungsansatz.
Kann nicht sagen, ob das so funktionieren wird
Thomas Schulte:
OK bis zu einem ersten Step bin ich jetzt schon einmal gekommen. Das hier funktioniert soweit, das er sich jeweils den Absprungpunkt in der View merkt und das jeweils letze geöffnete Dokument und dann über Links jeweils zurückspringen kann:
Im $$Return Dokument:
<H1>Bitte wählen sie in den nächsten 60 Sekunden aus den verfügbaren Links aus wohin sie zurückspringen wollen.</H1>
<br><br>
Sonst werden sie an ihren Ausgangspunkt zurückgeleitet.
<br><br>
<a href="javascript:ShowBaseView();">Ursprungsansicht</a>
<br><br>
<a href="javascript:ShowDocument();">Dokument von dem du kommst</a>
In JS Header des $4Return Dokumentes:
function NextStep() {
location.href = parent.fsaNavigatorHeader.document._frmNavigatorHeader.LocationHrefSave.value;
}
function ShowBaseView() {
location.href = parent.fsaNavigatorHeader.document._frmNavigatorHeader.LocationHrefSave.value;
}
function ShowDocument() {
location.href = parent.fsaNavigatorHeader.document._frmNavigatorHeader.DocumentHrefSave.value;
}
In Onload Event des $$Return Dokumentes:
TimerID = setTimeout("NextStep() ",60000)
Und im ViewTemplate beim Onload:
top.fsaNavigatorHeader.document._frmNavigatorHeader.LocationHrefSave.value = location.href;
In den Masken beim Onload ebenfalls den entsprechenden Wert, nur halt in ein anderes Feld eintragen
top.fsaNavigatorHeader.document._frmNavigatorHeader.DocumentHrefSave.value = location.href;
Nächster Schritt: Jetzt muss noch der Name der Ursprungsansicht irgendwie gespeichert werden und der Name des Dokumentes. damit die Links komplett "dynamisch" werden und dann noch den Pfad der Dokumente aufzeichnen.
Thomas
Marinero Atlántico:
Zuerst mal must du wohl das Feld dazu bringen irgendwie Mehrfachwerte zu speichern und eine Menge mehr...
Das ist eine komplexe Aufgabe für ein Webprojekt. Bedenke v.a. das back und forward buttons im Browser das ganze ziemlich komplizieren können.
Ohne deine Requirements vollständig verstanden zu haben, würde ich trotzdem versuchen die Navigations- und sonstigen Aktivitäten des Users in Backend Notes-Dokumenten zu speichern, obwohl dies sich sicherlich auf den memory footprint der Anwendung sowie die Responsivität auswirken wird (beides Performance-Themen).
Gruß Axel
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln