|
|
funny-AJAX
Zunächst zu unserer wirklich kleinen PHP-Datei "test.php"
|
|
getcwd() ermittelt den Pfad, in welchem "index.html" zuhause ist und hängt einfach die Infor-Datei zu den Emails "emails.txt" an.
"file_exists()" überprüft nun mit dem ermittelten Pfad + Dateiname, ob diese Datei vorhanden ist?
Wenn ja, wird die Datei mit fopen($file, "r") zum Lesen geöffnet ("fopen()" = öffne Datei und "r" = read (zum Lesen))
"fread(...,filesite($file))" = "lies die Datei und zwar nur bis zum Ende" (filesize gibt die Anzahl der Zeichen in der Datei zurück).
Die Inhalte der Datei (falls vorhanden) werden in die Variable "$emails" geschrieben und zwar als String.
Datei wird wieder geschlossen ("fclose()") und der String wird via "echo" ausgegeben, womit er an die Javascript-Funktion "receivE()" übergeben wird.
|
PHP - fertig - jetzt kommt Javascript:
|
|
Mit der Funktion"createReqObj" wird - abhängig vom Browser - ein Objekt ("ein Koffer mit 1000 Griffen und 1024 Reißverschluss-Öffnungen" - in den Raum (Arbeitsspeicher) gestellt, dem wir einige "Aufkleber verpassen können" und an dem wir uns auf verschiedene Arten festhalten sowie manches hinein laden oder heraus nehmen können. In unserem Fall ist das die Eigenschaft ("Schublade mit Schlüsseln drin") "responseText". Entschuldigung für die lapidare Formulierung - aber - ich glaube, so wird das Objekt XMLHTTPrequest-Objekt ("rqo") am besten verstanden.
Nach der Funktion "createReqObj{}" erfolgt auch sofort deren Aufruf: "rqo = createReqObj()"m womit wir beim Start der jeweiligen Datei "index.html" sofort ein zuvor beschriebenes, neu instantiiertes Objekt in den Arbeitsspeicher laden, welches für die Kommunikation mit dem Server (in unserem Fall via PHP) verantworrtlich ist. Selbstverständlich geht das auch in anderen Scriptin-Sprachen, wie etwa in Active Server Pages (ASP).
|
|
|
Da der Aufruf: "requesT()" direkt beim Laden der index.html erfolgt, beginnt auch schon die Abarbeitung der zuerst beschriebenen "test.php" und dabei wird tatsächlich nach etwaig vorhandenen Emailinformationen geschaut.
Die Auswertung der "test.php" wird in die dritte Javascript-Funktion "receivE()" geschickt: "rqo.onreadystatechange = receivE", wobei "onreadystatechange" eine Eigenschaft des Objekts "rqo" ist. Sobald diese sich ändert ("jemand etwas in unseren Koffer hineinlegt"), wird die Änderung gemeldet und zwar der Funktion "receiveE()".
|
|
|
Da Funktion "receivE()" erhält nun einen String zugewiesen ([mike.holger@web.de][ortenauer.mail@gmail.com]...), in welchem jede Email einen Start (Onset = "[") und ein Ende (Offset="]") hat, an dem erkannt wird, wo die Email beginnt und wo diese endet.
Der String wird Zug um Zug zerlegt, wobei ".substring()" via Javascript einen Teil des Strings auswertet und ".indexOf()" jeweils Anfang und Ende des vorderen String-Teiles ermittelt, in welchem die On- und Offsets stehen.
".replace()" löscht den String "emails" an der Stelle, an welcher die letzte Email samt On- und Offset ermittelt wurde und ist damit die "Schere", welche uneren String immer an genau der richtigen Stelle "abschneidet".
Sobald der String abgearbeitet ist und in "Portionen" in der Variablen "all_emails" bereit steht, wird dieser zu guter letzt mit
"document.getElementById("emails").innerHTML = all_mails;"
in den bereit stehenden "<div id="emails">" geschrieben - fertig.
|
Somit ist die Aufgabe, beim Start eine Überprüfung auf vorhandene Dateien durchzuführen und deren Inhalt gegebenenfalls zu verarbeiten - und zwar in einer HTML-Datei gelöst. Isn't it "funny"?
Auf der letzten Seite habe ich noch einmal die drei "beteiligten" Dateien für Sie zusammen gestellt - Viel Spaß beim Testen und beim Üben.
<<< Zurück zur Seite 2 - Seite starten mit HTML - aber immer schön "flexibel"
|
Seite starten mit HTML - die Codes in Zusammenstellung >>>
|