php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.04.2010, 17:46  
Neuer Benutzer
 
Registriert seit: 16.04.2010
Beiträge: 3
PHP-Kenntnisse:
Fortgeschritten
Multivac befindet sich auf einem aufstrebenden Ast
Standard Informationen bei Verlassen der Seite speichern

Guten Nachmittag,

ich bastle derzeit an einer Seite, auf der (eingeloggte) Benutzer DIV-Tags per JavaScript verschieben können. Beim Verlassen (inkl. Logout oder F5-Aktualisierung) der Seite sollen die Positionen der DIVs gespeichert werden, damit sie bei einem erneuten Besuch wieder genau an diesen Positionen angezeigt werden.

Nun gut, mein bisheriger Ansatz sieht so aus, dass ich mittels unload des Body-Tags eine Funktion aufrufe, die dann über ein xmlHttpObject die Positionen speichert.

Das Problem dabei ist Folgendes: Anscheinend wird diese unload-Funktion erst aufgerufen, nachdem die neue Seite aufgebaut wurde. Das heißt, bei einer Aktualisierung der Seite werden beim erneuten Seitenaufbau erst die alten Positionen geladen und dann werden erst die aktuellen Positionen gespeichert. Ebenso schlägt das Speichern beim Logout fehl, denn auch hier wird erst das Logout-Script aufgerufen, das Speichern schlägt danach fehl, da der Benutzer eben nicht mehr angemeldet ist.

Die Positionen direkt beim Verschieben zu speichern, halte ich für zu performancelastig und Speichern z.B. im 10 Sekunden Takt (wenn sich die Positionen geändert haben) wäre meine Notlösung, falls ich nichts besseres finde. Aber dann würden die Verschiebungen aus den letzten 10 Sekunden verloren gehen. Ich suche also eine Möglichkeit, diese Positionen zu speichern bevor eine neue Seite aufgerufen wird.

Ich hoffe, dass mir jemand dazu Denkanstöße geben kann.
Multivac ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.04.2010, 17:50  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Die Positionen direkt beim Verschieben zu speichern
Ajax-Request onMouseUp. So würde ich das machen. Wahlweise dabei die Daten in eine Session speichern oder sogar direkt in die DB. Ich finde es aber auch nicht sooo schlimm, vor dem Browserclose nen Speichern Button drücken zu müssen (also die Session Lösung).
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 16.04.2010, 18:15  
Neuer Benutzer
 
Registriert seit: 16.04.2010
Beiträge: 3
PHP-Kenntnisse:
Fortgeschritten
Multivac befindet sich auf einem aufstrebenden Ast
Standard

Danke für die schnelle Antwort. Die Methode mit dem Button finde ich für den Benutzer etwas zu unkomfortabel. onMouseUp klingt nicht schlecht, kann im Zweifelsfall aber auch recht oft aufgerufen werden. Eine Idee, die ich noch hatte war, dass ich direkt nach dem Seitenaufruf (onload) die aktuellen Positionen (wieder mit xmlHttpObject) nachlade. D.h. beim Neuladen wird die Seite erst mit den alten Positionen geladen, lädt aber sofort die neuen nach.
Die Idee hatte ich zwar verworfen, da sie das Logout-Problem nicht löst. Aber mir ist gerade eingefallen, dass ich das Abmelden ja auch über eine JS-Funktion machen kann, welche dann erst die Positionen speichert und dann erst zum Logout-Script weiterleitet. So habe ich das jetzt mal implementiert und es funktioniert auch. Ist zwar meiner Meinung nach sehr unschön, dass Dinge direkt beim onLoad schon nachgeladen werden, aber es gibt eben nicht so viel unnötigen Zwischentransfer wie bei der onMouseUp-Variante.
Also falls jemandem noch eine bessere Lösung einfällt, bitte posten. Ansonsten mach ich's so wie eben beschrieben.
Noch mal danke für die Antwort.
Multivac ist offline   Mit Zitat antworten
Alt 16.04.2010, 18:25  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Hmm, Du diskutierst hier zwei Probleme. Meine Aussage bezog sich auf das Zwischenspeichern der Position. Ich sehe eine Session-Lösung eigentlich recht unproblematisch. Wenn da jetzt jemand Dauerfeuer am Klickfinger spielt, klar, dann kann das Problematisch sein. Ansonsten löst eine Session Dein Problem mit der Positionsübernahme auf die nächste Seite, ist vermutlich performanter als ein DB-UPDATE und notfalls kannst Du onUnload die Sessiondaten (versuchen) in die DB (zu) schreiben.

Zitat:
Die Methode mit dem Button finde ich für den Benutzer etwas zu unkomfortabel.
Kann man auch anders sehen. Wenn man jetzt was hin- und herschiebt und merkt, dass das Layout vorher viel praktischer war, steht man doof da. Zudem ist ein Save-Button doch allgemein bekannt in User Interfaces.
Ebenso ginge der typische Save / Cancel Dialog onUnload.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Varieblen in Textdatei speichern um neu html seite zu generieren Crash Override PHP Tipps 2009 17 09.01.2010 21:18
CURL in Seite einloggen und einen Teil parsen Matt PHP Tipps 2008 8 03.09.2009 22:30
[Erledigt] Dynamisch erstellte Seite (als Variable?) in der Datenbank speichern Larkin Datenbanken 3 16.08.2009 14:40
[Erledigt] Header Location funktioniert nicht, wenn div's oder span's auf der Seite s phpels PHP Tipps 2008 24 01.12.2008 00:16
Hilfe, Seite im Internet Explorer Buggy trowman HTML, Usability und Barrierefreiheit 4 15.09.2008 08:32
Bei richtiger Eingabe Daten an nächste Seite versenden xx_heidi_xx PHP Tipps 2008 49 27.05.2008 14:56
String aus einer Seite in Variable speichern KimKaye PHP Tipps 2008 10 14.05.2008 09:57
Quellcode einer dynamischen Seite kopieren und als Datei speichern Lothar PHP Tipps 2008 15 05.05.2008 23:32
Krieg kein Objekt zurück auf includeter Seite NONNNNN PHP Tipps 2008 5 28.03.2008 19:25
Eintrag in DB und Wechsel zu anderer Seite Darson PHP Tipps 2008 25 14.01.2008 16:46
Hinweiß beim Verlassen der Seite winki PHP Tipps 2006 7 18.07.2006 16:37
Seite nicht mehr gültig Igäl PHP Tipps 2006 3 25.05.2006 16:08
dynamische Seite als htm datei speichern chrisbog PHP Tipps 2006 4 23.01.2006 22:11
dynamisch generierte HTML Seite speichern PHP Tipps 2005-2 10 19.10.2005 14:22
[Erledigt] PHP Eine neue PHP seite automatisch öffnen PHP Tipps 2004 1 19.06.2004 12:40

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
verlassen seite kann, javascript beim verlassen der seite speichern, verlassen dieser seite kann, php seite verlassen, verlassen dieser seite, php beim verlassen der seite, javascript seite verlassen speichern, \verlassen seite kann\, js beim verlassen der seite speichern, verlassen dieser, bei verlassen, logout beim verlassen der seite, ajax beim verlassen der seite, html verlassen der seite, php bei verlassen der seite, javascript seite verlassen ohne speichern, beim verlassen der seite in datenbank speichern, php beim verlassen speichern, javascript ajax vor dem verlassen einer seite daten speichern, php event beim verlassen der seite

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:32 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum