..
Det er et par uger ud af version 1.5 af vores elskede jQuery, efterfulgt af tilbagevenden af post 1.5.1, dybest set en bug-rettet version af den første.
Min første indskydelse fik mig til at tro, at du kunne vente lidt tid til at kværne denne udgivelse, hvis blot fordi 1.4.x filialen allerede er udført på deres arbejde meget godt, for ikke at nævne, at være lidt mere tid på version giver brugerne en følelse af stabilitet og sikkerhed.
Men da jeg læste hvad, der er blevet ændret og tilføjet jeg ombestemte mig lige med det samme.
Ændringerne i 1,5 er væsentlige, men ikke så meget i funktioner, der er udsat for, hvor meget arbejde der er gjort bag kulisserne, især i form Ajax udviklere, hvis ændringer du ikke tøve med at kalde epokegørende, ikke så meget generelt (hvad andre rammer allerede bruger Her introducerer vi nu), men for jQuery.
Vi ser en lidt mere specifikt, hvad der er blevet gjort.
Rammerne udvikling team har omskrevet det meste af AJAX API giver tre måder at udvide funktionaliteten i $ Ajax ():. Den forfiltre, at omformere og transporterer
Et forfilter er en callback funktion kaldet før ajax anmodningen rent faktisk bliver sendt, og som beskrevet i dokumentationen, forud for eventuelle behandlingsmuligheder af $. Ajax () selv.
Forfilteret er indspillet ved hjælp af $ AjaxPrefilter ().:
$. AjaxPrefilter (funktion (optioner, originalOptions, jqXHR)
Jeg vil forklare, hvad en jqXHR, Tænk på det som en wrapper for nu beriget med en XMLHttpRequest.
Det mest interessant eksempel i den dokumentation, forklarer den mulige brug af forfiltre til at ændre en eksisterende mulighed
$. AjaxPrefilter (funktion (optioner) {
if (options.crossDomain) {
options.url = "http://miodominio.it/proxy/" + encodeURIComponent (options.url);
options.crossDomain = false;
}
});
At sige, hvis indstillingen er crossDomain opkaldet er Approksimeret til webadressen http://mydomain.net/proxy/.
Og 'muligt at bruge $ AjaxSetup () til at registrere det globalt.:
$. AjaxSetup ({
omformere: {
"Miodatatype tekst"-funktion (textValue) {
if (gyldig (textValue)) {
/ / Her brugerdefineret logik til at parse!
miodatatypeValue vende tilbage;
Else {}
/ / Giver besked en parse fejl
kaste undtagelse;
}
}
}
});
Eller ring direkte inline for hvert opkald, der kræver det:
$. Ajax (url, {
datatype: "XML tekst miodatatype"
omformere: {
"XML tekst"-funktion (xmlValue) {
/ / Parse logikken her!
textValue vende tilbage;
}
}
});
Grunden mest fornuftigt at bruge en konverter er, at det giver en måde at definere dine egne datatyper derefter brugt som en tilbagevenden type, det første eksempel, kan vi anmode den type miodatatype dette:
$. Ajax (url, {
datatype: "miodatatype"
});
Bemærk: datatypen skal være defineret som små bogstaver strenge.
Hvis der var nok konvertere de forfiltre og for at forme vores ajax anmodninger, er de objekter, der stilles til rådighed transporter, at dokumentationen definerer sidste udvej (hvilket ville oversætte som "ikke bruger" eller med ", hvis du føler dig tvunget til at bruge dem, måske du skulle reflektere over logik, du bruger ").
Men transporterne giver to funktioner: Send og undlade og registreres ved hjælp af $ AjaxTransport ()..
Her er den grundlæggende eksempel i den tilhørende dokumentation:
$. AjaxTransport (funktion (optioner, originalOptions, jqXHR) {
if (/ * transportCanHandleRequest * /) {
{Return
send: funktion (headers, completeCallback) {
/ * Send kø * /
},
ABORT: function () {
/ * Abort kode * /
}
};
}
});
og beskrivelsen af de parametre, der oversætter for din bekvemmelighed:
den typiske struktur i en completeCallback er som følger:
funktion (status, statusText, svar, overskrifter) {}
hvor:
Vi har beskrevet hvad, der er blevet tilføjet for at øge fleksibiliteten af modulet ajax, men for fælles benyttelse jeg finder det meget interessant kommentar om indførelse af udskudt, men før du gør det jqXHR definere den nye objekt, der er returneret fra Ajax opkald.
jqXHR familie er et supersæt af XMLHttpRequest objekt, der implementerer grænsefladen Promise ved at give alle de metoder, egenskaber og adfærd defineret ved et løfte:
Definition: Et løfte er et skrivebeskyttet visning af resultatet af en opgave, og repræsenterer den værdi, der returneres ved afslutningen af transaktionen.
For mere information se her .
| |
CSS (Kursus)
Web Design og tilgængelighed i henhold til W3C CSS og XHTML. Fra 29 €. |
| |
HTML (Kursus)
Det markup sprog til nettet fra 29 €. |
| |
Javascript (Kursus)
Komplet guide til klient-side scripting. Fra 39 €. |