gantt ajax Modul
// vorausgesetzt, die Antwort ist wie folgt
{status: "ok", data: "value", data2: "value2"}
var xhr = gantt.ajax;
// HTTP GET
xhr.get("server.php").then(function(response) {
var res = JSON.parse(response.responseText);
if (res && res.status == "ok") {
// Antwort ist ok
}
});
// HTTP POST
xhr.post({
url:"server.php",
data: {
paramName: "paramValue"
}
}).then(function(response){
var res = JSON.parse(response.responseText);
if (res && res.status == "ok") {
// Antwort ist ok
}
});
Alle Methoden können als Parameter entweder:
1) RequestConfig - ein Objekt mit Konfigurationsoptionen für die Anfrage, das wie folgt aussieht:
{
url: string,
method: "PUT|GET|POST|DELETE",
data: string | object,
async: true|false,
callback: function,
headers: object
}
wo:
oder:
2) Drei Parameter (außer für die query() Methode, die nur das RequestConfig Objekt annehmen kann):
Die Liste der API des ajax Moduls ist unten angegeben:
Alle Methoden erlauben sowohl Callbacks als auch Promises zur Bearbeitung der Antwort.
Ein ajax Promise gibt ein abgeschlossenes XmlHttpRequest zurück:
gantt.ajax.post({
url:"some.php",
data: {
paramName: "paramValue"
}
}).then(function(response){
alert(response.responseText);
});
Aus historischen Gründen erhält die Callback-Option den Wert in einem etwas anderen Format:
gantt.ajax.post({
url:"some.php",
data: {
paramName: "paramValue"
},
callback: function(result){
var response = result.xmlDoc;
alert(response.responseText);
}
});
die allgemeine Methode zum Senden von Anfragen. Ermöglicht das Senden jeder Art von Anfrage (Sie müssen nur die gewünschte Anfrage in den Parametern angeben)
gantt.ajax.query({
url:"some.php",
method:"POST",
data: {
paramName: "paramValue"
}
}).then(function(response){
alert(response.responseText);
});
sendet eine GET-Anfrage
gantt.ajax.get("some.php", function(){
// Ihr Code hier
});
// oder
gantt.ajax.get({
url: "https://…",
callback: function() {…},
headers: { "Content-Type": "application/json" }
});
sendet eine PUT-Anfrage
gantt.ajax.put("server.php", "keep_alive=1&version=std", function(){
// Ihr Code hier
});
// oder
gantt.ajax.put({
url: "https://…",
callback: function() {…},
headers: { "Content-Type": "application/json" },
data: {}
});
sendet eine DELETE-Anfrage
gantt.ajax.del("server.php", function(){
// Ihr Code hier
});
// oder
gantt.ajax.del({
url: "https://…",
callback: function() {…},
headers: { "Content-Type": "application/json" }
});
sendet eine POST-Anfrage
gantt.ajax.post("server.php", "keep_alive=1&version=std", function(){
// Ihr Code hier
});
// oder
gantt.ajax.post({
url: "https://…",
callback: function() {…},
headers: { "Content-Type": "application/json" },
data: {}
});
Sie können anstelle eines Strings ein Objekt mit Daten in die post und put Methoden übergeben. Falls ein Objekt übergeben wird, serialisiert das ajax Modul es selbst. Ein einfaches Objekt wird als Formulardaten (¶m=value) serialisiert, verschachtelte Strukturen werden mit Hilfe von JSON.stringify() serialisiert.
Zum Beispiel wird das folgende Objekt:
{
id: 1,
text: "Meine Aufgabe",
users: [1,2,3]
}
in einen String umgewandelt, der wie id=1&text=Meine%20Aufgabe&users=%5B1%2C2%2C3%5D
aussieht.
dhtmlxGantt unterstützt die Verwendung von Promises (einschließlich IE8+). Für die Arbeit mit Promises verwendet Gantt die Bluebird Promise-Bibliothek. Um ein Promise zu erstellen, müssen Sie den folgenden Konstruktor verwenden:
var promise = new gantt.Promise(function(resolve, reject) {...});
Promise wird innerhalb von Gantt deklariert, nicht global für die Anwendung.
Das AJAX-Modul gibt ein Promise zurück, das die Verwendung der Promise-Schnittstelle anstelle des Callbacks ermöglicht. Statt also zu verwenden
gantt.ajax.post(url, params, callback);
können Sie beim Senden einer POST-Anfrage die folgende Schreibweise verwenden:
gantt.ajax.post(url, params).then(function(){…});
Es ist möglich, Callbacks und Promises gleichzeitig zu verwenden.
Das folgende Beispiel zeigt, wie Sie mehrere Anfragen gleichzeitig an den Server senden und danach die Daten neu laden können:
gantt.Promise.all([
gantt.ajax.post({url: "api/task", data: task1}),
gantt.ajax.post({url: "api/task", data: task2}),
gantt.ajax.post({url: "api/task", data: task3})
]).then(function(){
gantt.clearAll();
gantt.load("/api");
});
hinzugefügt in Version 4.0
Zurück nach oben