De:0.5 Upgrade-Informationen
De:0.5 Upgrade-Informationen
xajax v0.5 beta 1 wurde veröffentlicht
Diese Seite wird mit der Zeit mit Informationen gefüllt, die die Änderungen von v0.2.x zu v0.5 vorstellen, von denen viele bereits im Folgenden zu sehen sind.
Contents |
[edit] Ergänzungen
[edit] Delay-Events
Sie können jedem Aufruf nun (zusätzlich zu einem/einer globalen Delay-Event/-Funktion) spezifische Delay-Events oder "Lade..."-Funktionen zuweisen:
xajax.call('functioname',{onRequestDelay:delayFunctionName});
[edit] Plugins
xajax verfügt nun über ein Plugin-System und kann in Hinblick auf Zusammenarbeit mit anderen Frameworks (wie etwa script.aculo.us) erweitert werden. Ein Beispiel eines Plugin-Aufrufs:
xajaxResponse->plugin('scriptaculous')->fade('myDiv');
[edit] Änderungen
[edit] Request-Type
Die Möglichkeit, den Request-Type festzusetzen, wurde entfernt, da meist POST verwendet wird. POST erlaubt außerdem die Übermittlung von größeren Datenmengen bei jedem Request. Die GET-Request-Methode wird als Ausweichlösung genommen, falls ein POST-Request fehlschlägt.
[edit] Response-Befehle
xajaxResponse wurde umbenannt, um zukünftig andere Methoden des Datentransports zu erlauben. Neuerdings werden Response-Befehle in einem Feld gespeichert; das Feld wird in XML konvertiert, bevor die Response abgeschickt wird. Zuvor wurde das XML erstellt, wenn Befehle zur Response hinzugefügt wurde, indem der neue Code an die Rückgabe angehängt wurde.
[edit] Ordnerstruktur
Die Ordnerstruktur von xajax wurde verändert, um die Trennung von PHP- und JavaScript-Dateien zu ermöglichen. Alle PHP-Dateien befinden sich in xajax_core, alle Javascript-Dateien in xajax_js.
[edit] Neubennenung von Methoden
Hinweis: Sie können weiterhin die alten Methoden verwenden, wenn Sie die Klasse legacyXajax() anstelle von xajax() bzw. legacyXajaxResponse() anstelle von xajaxResponse() instanzieren.
xajax-Methoden
xajax->processRequests() wurde zu xajax->processRequest()
Alle boolschen Einstellungen wie xajax->debugOn(); und xajax->outputEntitiesOn(); wurden zu xajax->setFlag('debug',true) bzw. xajax->setFlag('outputEntities',true); xajax->setFlags() kann alternativ ein Feld übergeben werden: xajax->setFlags(array('debug'=>true,'outputEntities'=>true));
xajax->registerExternalFunction() wurde in xajax->registerFunction() integriert, so dass xajax->registerFunction() nun ein zweiter Parameter übergeben wird: xajax->registerFunction('functionName', 'file.php')
xajaxResponse-Methoden
Die meisten Methoden der xajaxResponse-Klasse wurden verändert. Das verwirrende 'add'-Präfix wurde aus den Namen der meisten Funktion entfernt. xajaxResponse->addScript() wird also zu xajaxResponse->script(), xajaxResponse->addAssign() zu xajaxResponse->assign() usw. Das macht das Verketten von Response-Befehlen mit PHP5 zu einem Vergnügen:
$response ->alert("Hi!") ->assign("myDiv", "innerHTML", $stuff) ->plugin('script.aculo.us')->highlight("myDiv") ->scriptCall('finishEditing', $newID);
xajaxResponse->getXML() wurde entfernt. Geben Sie einfach das xajaxResponse-Objekt zurück.
[edit] Kurzübersicht
| Alter Code | Neuer Code |
| require_once('xajax.inc.php'); | require('xajax_core/xajax.inc.php'); |
| xajax->debugOn(); | xajax->setFlag('debug',true); |
| xajax->debugOff(); | xajax->setFlag('debug',false); |
| xajax->statusMessagesOn(); | xajax->setFlag('statusMessages',true); |
| xajax->statusMessagesOff(); | xajax->setFlag('statusMessages',false); |
| xajax->decodeUTF8InputOn(); | setFlag('decodeUTF8Input',true) |
| xajax->registerExternalFunction('function','file.php'); | xajax->registerFunction('function','file.php'); |
| xajax->processRequests(); | xajax->processRequest(); |
| xajaxResponse->loadXML($response); | xajaxResponse->loadCommands($response); |
| return xajaxResponse->getXML(); | return xajaxResponse |
| xajaxResponse->addAssign(); | xajax->assign() |
| xajaxResponse->addAlert(); | xajax->alert() |
| xajaxResponse->addScript(); | xajax->script() |
| xajaxResponse->addScriptCall(); | xajax->call() |
| xajax.call('functionName',args); | xajax.call('functionName',{parameters:args}); |
| xajax.loadingFunction = function(){}; | xajax.eventFunctions.globalRequestDelay = function(){}; |
| xajax.doneLoadingFunction = function(){}; | xajax.eventFunctions.globalRequestComplete = function(){}; |