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

Netflix
Streaming

Preise, kompatible Geräte, Datenrate, Serien- und Filmangebot von Netflix: Wir beantworten die wichtigsten Fragen rund um den Streaming-Dienst.
Whatsapp auf PC
Mit oder ohne Download

Mit Whatsapp Web oder der Whatsapp Desktop-App nutzen Sie den Messenger bequem am PC. Wir erklären Download, Installation und Einrichtung.
Spam-Mails
6 Tipps gegen E-Mail Betrug

Betrüger versenden E-Mails, die es auf Ihre Daten und Ihr Geld abgesehen haben. Wie Sie Phishing E-Mails erkennen und sich schützen.
DSL-Symbolbild
Umzug, Ausfall & Co.

Sie wollen Ihren Provider für Internet und Telefon wechseln? Wir verraten, welche Rechte Sie bei Ausfall, Unterbrechung und Umzug haben.
Steve Jobs - Film
Vorschau auf Film- und Serien-Highlights

Amazon Prime Video lockt im Juli 2017 mit Film-Highlights wie "The Expandables 3", "Steve Jobs" und weiteren Highlights.