×
Vytvárame riešenia

Ako vytvoriť univerzálny modul pre nahrávanie dát v Dojo

V minulosti som pripravil článok, ktorý predstavil asynchrónny spôsob nahrávania JSON dát prostredníctvom frameworku Dojo Toolkit. V tomto článku predstavím pokročilejší spôsob nahrávania akéhokoľvek typu dát, v akomkoľvek režime, akoukoľvek metódou. Síce na výber nie je veľa možností, ale popis riešenia aspoň vyznie bombasticky :-).
Hlavnú funkcionalitu zabezpečuje funkcia loadData() a modul dojo/when.
Príklad: Univerzálny modul pre nahrávanie dát.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
require(["dojo/ready", "dojo/request/xhr", "dojo/when"],
function(ready, xhr, when) {
ready(function() {
// universal XHR function
// supports: sync and async mode,
// various data formats
// POST and GET method
function loadData(/* String */ uri, /* Object */ query,
/* String */ dataType, /* String */ method,
/* Boolean */ async) {
return xhr(uri, {
preventCache: true,
handleAs: dataType ? dataType : "json",
sync: async ? false : true,
method: method ? method : "POST",
query: query
});
}
var uri = "data.json";
var query = null;
var async = true;
when(loadData(uri, query, "json", "POST", async),
success, error);
function success(/* String */ data) {
console.log(data);
}
function error(/* String */ err) {
console.warn("An unexpected error occurred: " + err);
}
});
});
Uvedený príklad nahrá súbor data.json v asynchrónnom móde metódou POST, kde očakávaný typ dát je JSON. Požiadavka nemá query string.

Záver

Pre univerzálne použitie je vhodné funkciu loadData() umiestniť do define() spôsobom, ktorý je prezentovaný v článku Ako vytvoriť modul pre asynchrónne nahrávanie dát v Dojo.


Dojo,dojo/ready,dojo/request/xhr,dojo/when,xhr,JSON
Žiadna časť tohto článku nesmie byť reprodukovaná bez uvedenia autora a URL na túto stránku.
Viac informácií nájdete v sekcii O projekte.

Komentáre

Článok neobsahuje zatiaľ žiadne komentáre.

Pridať komentár

Meno (povinné)
Web
Správa (povinné)
Odoslať
Od najnovších