Per Klick vor und zurück

Teil 5: Ajax unter verschiedenen Browsern

Normalerweise ist es ja unschädlich, wenn der User seine Änderungen beliebig oft wiederholt. Wenn der Anwender ein Bild auf der Seite verschiebt, ist dies ja keine irreversible Änderung. Anders sieht es aus, wenn der Anwender Bilder dreht oder deren Größe ändert. Hierbei hilft es, das Original-Bild zu erhalten, und in der Anwendung zwar Drehwinkel, Größe, Farbraum etc. zu berechnen, aber die Endtransformationen immer wieder auf dasOriginal-Bild anzuwenden. Dann ergeben zehn Drehungen um jeweils 36 Grad kein verzerrtes Bit-Muster, sondern einfach wieder das Original. Also können Sie in der Test-Anwendung ein Bild klaglos verkleinern und vergrößern, weil das Bild so in der Datenbank bleibt, wie es hoch geladen wurde.

Ajax unter verschiedenen Browsern

© Archiv

http://dojotoolkit.org: Dojo - sollten Sie kennen und testen, wenn Sie sich mit AJAX weiter professionell beschäftigen.

Einige Änderungen wie Uploads erfordern mehr Aufmerksamkeit. Wenn Sie einen Upload jedesmal wiederholen, weil der Anwender mit back und forward über den Ausgangspunkt des Ladevorgangs manövriert, haben Sie am Ende z.B. fünf gleiche Bilder in der Datenbank, und vier davon können Sie nicht korrekt adressieren, weil die Datenbanksätze die falsche ID haben. Das Bild-Objekt jedesmal aus der Datenbank zu löschen und wieder zu erzeugen, erhöht die Schwierigkeiten, weil die Datenbank den 'neuen' Bildern neue ID-Nummern verpasst. Objekte werden also nur einmal erzeugt und nie wieder vernichtet.

Wenn der Anwender mit back vor den Zeitpunkt zurückgeht, an dem er das Objekt hochgeladen hat, dann wird es nicht mehr angezeigt. Wenn er sich per Klick vorwärts positioniert, kommt das Objekt eben einfach wieder zur Anzeige. Ein Geburtsdatum in der Datenbank lässt die Objekte aus, die noch nicht zur Verfügung stehen, wie es der Tabellenaufbau verdeutlicht:

| ajax5_objects | CREATE TABLE 
'ajax5_objects' ( 
'id' int(12) NOT NULL auto_increment, 
'sid' char(32) NOT NULL default '', 
'create_no' smallint(6) NOT NULL 
default '0', 
'aend_no' smallint(6) NOT NULL 
default '0', 
'create_time' int(11) NOT NULL 
default '0', 
'father' char(16) NOT NULL default 
'toolbox',

create_no ist die Änderungsnummer, also das Geburtsdatum. Die Variable create_time verhindert Zwillinge. Beim Navigieren mit back und forward stellt der Browser die Umgebung mit Aufrufparametern, Namen und Daten der Upload-Dateien usw. her. So lädt der Anwender dieselbe Datei zwei- oder dreimal hoch, nur weil er zurückgeblättert hat. Sie müssen also herausfinden, ob ein Upload schon durchgeführt ist, oder ob ein neuer Klick erst das Objekt anlegen muss.

Hierzu nützen Sie den Unix-Zeitstempel create_ time, welchen das Upload-Formular liefert. Wenn Sie in der Datenbank ein Objekt mit gleichem Zeitstempel finden, dann sparen Sie sich Upload und Objekt-Erzeugung.

Mehr zum Thema

Youtube Sperre umgehen GEMA
Videos freischalten

So umgehen Sie die GEMA-Sperre bei Youtube. Was Sie dazu brauchen, und wie es am einfachsten geht.
Neue Fritzboxen unterstützen den AC-Standard.
WLAN-Geschwindigkeit verdoppeln

Mehr WLAN-Geschwindigkeit: Mit dem WLAN-Standard 802.11ac und den richtigen Geräten und Einstellungen verdoppeln Sie den Datendurchsatz.
Netflix auf dem TV
Programm in der Übersicht

Welche Filme und Serien gibt es bei Netflix eigentlich zu sehen? Was ist neu im Streaming-Angebot? Diese Antworten helfen weiter.
Netflix
Streaming

Preise, kompatible Geräte, Datenrate, Serien- und Filmangebot von Netflix: Wir beantworten die wichtigsten Fragen rund um den Streaming-Dienst.
E.T. – Der Außerirdische
Vorschau auf Film- und Serien-Highlights

Amazon Prime Instant Video lockt im Dezember 2016 mit Film-Highlights wie "E.T.", "Fast & Furious 7" und der Serie "Ku’damm 56​".