Ako vytvoriť modul pre asynchrónne nahrávanie dát v Dojo
Autori projektu Dojo v rámci prípravy prechodu na verziu 2.0 postupne menia niektoré techniky práce s technológiou AJAX. Medzi novinky patrí aj nahrávanie dát prostredníctvom modulu dojo/request. Tento modul nepodporuje vlastnosť sync, a tak je nahrávanie možné len asynchrónnym spôsobom. Pre synchrónne nahrávanie je možné použiť modul dojo/request/xhr.V tomto príspevku je predstavené vytvorenie základného modulu pre asynchrónne nahrávanie dát. Modul bude používať metódu POST a formát JSON. Čitateľ si následne môže uvedený modul upraviť tak, aby podporoval aj používateľom zadanú metódu a dátový formát. Ako prvé vytvoríme súbor JSON s testovacími dátami. Súbor bude mať názov data.json. Príklad: Obsah súboru data.json.
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
[
{
"id": "1",
"name": "Martin",
"age": "40",
"occupation": "Programmer"
},
{
"id": "2",
"name": "Peter",
"age": "22",
"occupation": "Student"
},
{
"id": "3",
"name": "Matej",
"age": "33",
"occupation": "Director"
},
{
"id": "4",
"name": "Robert",
"age": "31",
"occupation": "Manager"
}
]
Teraz vytvoríme samotný modul. Nazveme ho load-json.js. Príklad: Obsah súboru load-json.js.
1
2
3
4
5
6
7
8
define(["dojo/request"], function(req){
returnfunction(file){
return req(file, {
method: "POST",
handleAs: "JSON"
});
}
});
Posledným krokom je vytvorenie hlavného programu, ktorý nahrá vytvorený modul a zobrazí nahraté údaje do konzoly.Príklad: Hlavný program.
Ako vidieť, práca s modulom dojo/request nie je vôbec zložitá. Tí čo chcú ušetriť pár riadkov a sprehľadniť svoj kód si pre nahrávanie súborov vytvoria vlastný modul. Iný zase môžu nahrávanie umiestniť do "hlavného" programu. V rámci good practices sa odporúča vytváranie modulov, aby hlavný kód bol čo najkratší a najzrozumiteľnejší.
Záver
Pre pokračovanie programového kódu je určená funkcia success(). 29.3.2013 (aktualizované 5.1.2014), Matej LednárKategória: DojoDojo,AJAX,XHTML,dojo,good practices,programovanie,JavaScript,XHR,dojo/requestŽ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.