Vyhľadajte na stránke

Hľadať

Dozvedeli sme sa o priamych metódach jQuery pre roboty Ajax (ako get(), post() a load()).

Tento článok popisuje nízkoúrovňové rozhranie jQuery Ajax API.

Zdalo by sa, že výraz nízka úroveň naznačuje, že odopierate prístup k vstupnému mechanizmu, ale nie je to celkom pravda.

Metódy, ktoré sú tu opísané, sú menej manuálne ako tie, o ktorých sme hovorili vyššie, ale za cenu malého dodatočného úsilia ich môžete upraviť tak, aby presne vyhovovali vašim potrebám, ktoré môžete vždy získať pre priamu alebo ďalšiu pomoc.

Prepáč žiadosť Ajaxu

Je oveľa ťažšie vytvoriť riešenie pomocou API s nízkym pôvodom ako pomocou priamych alebo dodatočných metód.

Rozdiel spočíva v tom, že tento prístup vám umožňuje ovládať mnohé ďalšie aspekty dotazu a extrahovať z dotazu oveľa viac informácií.

Pri väčšine operácií Ajax je možné objekt jqXHR jednoducho ignorovať, čo odporúčam urobiť.

Tento objekt sa v týchto prípadoch používa, ak je potrebné odstrániť dodatočné informácie o výstupe servera, ktoré je možné odstrániť inými spôsobmi. Okrem toho môžete použiť Vikory na prispôsobenie parametrov požiadavky Ajax a je jednoduchšie vytvoriť parametre Vikory dostupné pre metódu ajax().
Výkony a metódy objektu jqXHR sú popísané v tabuľke nižšie: Mocniny a metódy objektu jqXHR
Výkon/metóda Popis readyState
Otočí indikátor priebehu počas celého životného cyklu, takže nadobúda hodnoty od 0 (žiadosť neodoslaná) do 4 (žiadosť dokončená) stav
Premení kód na HTTP odoslaný serverom statusText
Otočte textový popis na kód responseXML
Otočí odpoveď na zobrazenie XML (ako keby to bol dokument XML) responseText
Otočí text v zobrazení riadkov setRequest(názov, hodnota)
Otočí hlavičku (môžete to urobiť jednoduchším spôsobom pomocou hlavičiek) getAllResponseHeaders()
Otočí všetky nadpisy, ktoré sa objavia v zobrazení v riadku getResponseHeaders(meno)

Otočí hodnoty zadanej hlavičky videa

zrušiť()

Preruší proces prania

Objekt jqXHR sa nachádza na mnohých miestach v kóde.

V niekoľkých prípadoch používam objekt jqXHR a netrápim sa tým, pretože je výsledkom jeho otáčania pomocou metódy ajax().

Knižnica jQuery automaticky spúšťa Ajax a každú hodinu volá metódu ajax(), takže sa nestarám o možnosť čo najviac prispôsobiť parametre požiadavky.

Ak chcem pracovať s objektom jqXHR (zvyčajne získať ďalšie informácie o výstupe servera), musím ho zavolať cez parametre vyhľadávacieho nástroja, o ktorom si povieme neskôr. Poskytnú mi informácie o požiadavke, čím odpadá potreba ho kontaktovať. Nastavte URL a opýtajte sa

Jedným z najdôležitejších dostupných parametrov je

parameter url

, ktorá vám umožňuje zadať adresu URL pre dopyt. Tento parameter môžete použiť ako alternatívu k odovzdaniu adresy URL a ako argument pre metódu ajax(), ako je uvedené v príklade nižšie:$(function() ( $.ajax(( url: "mydata.json", success: function(data)) (var template = $("#flowerTmpl"); template.tmpl(data.slice(0, 3)) ) .appendTo("#riadok1" ));

Vytvorenie vyžiadané POST

Tu nie je možné opísať zadok, pretože

Podrobne sme sa na to pozreli v predchádzajúcom článku (iba s pomocou metódy post()).

Znamená to, že tu sme okrem typu zvolili aj množstvo parametrov.

Ak chcete vložiť značku, použite POST na vyhľadanie popisov pred parametrom url.

Údaje, ktoré sú prekonané, sú špecifikované pre parameter dodatočných údajov, ktorého hodnota je nastavená pre dodatočnú metódu serialize() opísanú v predchádzajúcom článku.

Typ údajov prijatých zo servera je uvedený v parametri dataType. Práca s rámcami Ajax Sada parametrov vám umožňuje špecifikovať funkcie pre funkcie spracovania, ktoré možno spustiť počas životného cyklu požiadavky Ajax.

Týmto spôsobom predvediete funkcie spätného volania, ktoré zohrávajú takú dôležitú úlohu v požiadavkách Ajaxu.

Jeden z nich ste si už uvedomili, keď ste sa pozreli na parameter úspechu v predchádzajúcom príklade.

Zoznam parametrov súvisiacich s kategóriami spolu s ich krátkym popisom je uvedený v tabuľke nižšie:

Výsledok bude vyzerať takto (v závislosti od toho, ktorý server používate, môžete mať inú sadu hlavičiek):

Spracovanie milostí

Chybový parameter sa používa na označenie funkcie, ktorá sa musí zavolať, keď požiadavka nebola dokončená.

Horný zadok smeruje nižšie:

Chyba (farba: červená; orámovanie: stredne plná červená; odsadenie: 4 pixely; okraj: auto; šírka: 200 pixelov; zarovnanie textu: na stred)

$(function() ( $.ajax(( url: "NoSuchFile.json", success: function(data)) (var template = $("#flowerTmpl"); template.tmpl(data.slice(0, 3)) ) .appendTo("#row1" template.tmpl(data.slice(3)).appendTo("#row2" error: function(jqxhr, status, errorMsg) "Status:" + status + "Politika: " + errorMsg) .insertAfter("h1"); )));

Tu sa dopytuje súbor NoSuchFile.json, ktorý sa nachádza na serveri, a zjavne nie je možné zadať žiadne položky, po ktorých sa zavolá funkcia špecifikovaná pre dodatočný parameter chyby.

Argumenty tejto funkcie zahŕňajú objekt jqXHR, ako aj oznámenie o procese zmeny a oznámenie o zmene, ktoré sa odstráni z výstupu servera.

Uprostred tejto funkcie sa do dokumentu pridá prvok div, ktorý zobrazuje hodnoty argumentov status a errorMsg, ako je znázornené v malom:

Úprava parametrov vstupov pred ich prevádzkou

Parameter beforeSend umožňuje nastaviť funkciu, ktorá sa bude volať pred odoslaním požiadaviek.

V predchádzajúcich aplikáciách sme na situácie súvisiace s požiadavkami Ajaxu reagovali kliknutím na jednu funkciu a v parametroch success, error, complete a beforeSend môžete špecifikovať pole funkcií, ktoré budú deaktivované pri spustení aplikácie podіi.

Jednoduchý zadok tohto je nasmerovaný nižšie:

$(function() ( $.ajax(( success: , beforeSend: function(jqxhr, settings) ( settings.url = "mydata.json"; ) ))); function processData(data, status, jqxhr) (var template = $("#flowerTmpl" template.tmpl(data.slice(0, 3)).appendTo("#row1" template.tmpl(data.slice(3)).appendTo("#row2")); ; ) funkcia reportStatus(data, status, jqxhr) (console.log("Status:" + status + "Kód výsledku:" + jqxhr.status); )));

V tejto aplikácii je pre parameter úspechu úloh pole, ktoré pozostáva z dvoch funkcií, z ktorých jedna sú údaje na pridávanie prvkov do dokumentu a druhá je výstup informácií do konzoly.

Prispôsobte tomu kontext

Parameter kontext vám umožňuje zadať prvok, ktorý sa použije v premennej this, ak sa volá vyhľadávací nástroj.

Tento nástroj môžete použiť na hĺbkovú analýzu celých prvkov dokumentu bez toho, aby ste museli vyberať funkciu spracovania.

Horný zadok smeruje nižšie:

$(function() ( $.ajax(( success: function(data)) (var template = $("#flowerTmpl"); template.tmpl(data.slice(0, 3)).appendTo("#row1" )) ; template.tmpl(data.slice(3)).appendTo("#row2" beforeSend: function(jqxhr, settings) ( settings.url = "mydata.json"; ), kontext: $("h1"); "), dokončite: funkcia(jqxhr, stav) ( var color = stav == "úspech" ? "zelená" : "červená"; this.css("hranica", "hrubá plná " + farba); ))); ));

Existuje skupina parametrov, ktoré sa dajú použiť na základné nastavenie požiadaviek Ajaxu (akcie z nich, url a typ, sme si pozreli vyššie).

Zo všetkých dostupných parametrov smradu je malý záujem a je dôležité povedať si ich mená. Parametre, ktoré je potrebné zvážiť, sú uvedené v tabuľke nižšie:
Základné konfiguračné parametre pre požiadavky Ajaxu Popis parametra
prijíma Nastaví požiadavku na hodnotu Accept, ktorá určuje typy MIME, ktoré bude prehliadač akceptovať.
Na propagačné účely je hodnota označená parametrom dataType cache
Hodnota je nepravdivá, čo znamená, že namiesto otázky nemusíte ukladať server do vyrovnávacej pamäte. Pokryté sú všetky typy údajov vrátane skriptu a jsonp
contentType Nastavuje hodnotu hlavičky obsahu prehliadky, ktorú chcete zadať
dataType Určuje typy údajov, ktoré sa budú zhromažďovať zo servera.
Keďže sa používa tento parameter, jQuery ignoruje informácie poskytnuté serverom o type požiadavky hlavičky
Určuje ďalšie hlavičky a hodnoty, ktoré musia byť zahrnuté v napájacom zdroji jsonp
Nastavuje poradie, ktoré sa použije na nahradenie funkcie volania brány na vykonávanie dopytov JSONP (dotazy medzi doménami). Tento parameter je relevantný pre server
jsonpCallback Určuje názov funkcie volania brány, ktorú možno použiť namiesto automaticky generovaného názvu vstupu, ktorý možno použiť na nahradenie jQuery.
heslo Nastavuje heslo, ktoré je možné zadať do účtu po vykonaní overovacieho postupu.
scriptCharset

Hovorí jQuery, ktorá znaková sada sa má použiť pri kódovaní JavaScriptu namiesto toho, čo je dopytované.

časový limit

Pre túto aplikáciu parameter timeout nastavuje maximálnu hodnotu časového limitu na 5 sekúnd.

Ak nebolo hlásenie zadané po dobu jednej hodiny, zavolá sa funkcia špecifikovaná v parametri chyby a zobrazí sa kód chyby indikovaný parametrom stavu.

Časovač sa spustí hneď po odoslaní dopytu do prehliadača a väčšina prehliadačov obmedzuje počet dopytov, ktoré sa skončia naraz.

To znamená, že existuje riziko, že v čase vypršania časového limitu nedôjde k žiadnemu spusteniu.

Aby sme to pochopili, je potrebné poskytnúť informácie o rozhraní prehliadača, ako aj o použití a dôležitosti akýchkoľvek ďalších požiadaviek Ajaxu, ktoré je potrebné ignorovať.

Okrem toho sa v tejto aplikácii používa parameter hlavičky nižšie, okrem toho sa pred príkaz pridáva hlavička.

Na vloženie hlavičiek vikorystu sa používa objekt zobrazenia údajov. Názov, ktorý sa tu zobrazuje, možno použiť v kontexte webových aplikácií, ktoré podporujú architektonický štýl REST, pokiaľ ho server správne rozpozná. Vyberte ďalšie konfiguračné parametre

Nasledujúce časti sú popísané s najväčším významom a spoliehajú sa na dodatočné parametre, ktoré sú nastavené pred požiadavkami Ajaxu.

Smrad sa objavuje len zriedka, ale v čase núdze, keď treba, sa smrad stáva nepostrádateľným.

Tieto parametre umožňujú doladiť interakciu medzi jQuery a Ajaxom. Vytváranie synchrónnych vstupov Keruvannaya režim vykonaný zapitiv zdіysnyuetsya o pomoc

async parameter

$(funkcia() ( $("tlačidlo").click(funkcia(e) ( $.ajax("mydata.json", )) úspech") ( $("#riadok1, #riadok2").children() .remove(var template) = $("#flowerTmpl" template.tmpl(data.slice(0, 3)).appendTo("#row1" template.tmpl(data.slice(3)); appendTo("#riadok2" else if (stav == "neupravené") ( $("img").css("hranica" , "hrubá plná zelená"); )));

Pre ktorú aplikáciu je hodnota parametra ifModified nastavená na hodnotu true. Funkcia úspechu sa zavolá znova, ale od chvíle, kedy bola naposledy požiadaná, sa nezmenila, potom je argument údajov nastavený na nedefinované a argument stavu je.

hodnota nezmenená

Pri každom výbere sa hodnoty priradia k hodnotám argumentu stavu.

Keďže argument úspechu je významný, argument údajov sa používa na pridávanie prvkov do dokumentu.

Keďže argument status nemá žiadny význam, používame metódu css() na orámovanie prvkov, ktoré sa už v dokumente nachádzajú.

V reakcii na tlačidlo kliknutia spojené s tlačidlom sa zavolá metóda ajax().

To vám umožňuje opakovane opakovať rovnaký príkaz, aby ste demonštrovali príliv parametra ifModified, ako je znázornené v malom: Vzhľadom na tento parameter ho odporúčam používať opatrne.

Ak sa sila aplikuje na predchádzajúcu akciu používateľa (napríklad kliknutie na tlačidlo), je jasné, že keď používateľ klikne na tlačidlo, fragmenty prednej strany sa nezapíšu podľa očakávania.

Tu je parameter statusCode úloh v objektovom pohľade, ktorý vytvára spojenie medzi kódmi odpovede pre požiadavky HTTP a súvisiacimi funkciami, ktoré sú zodpovedné za prihlásenie na server.

Aké argumenty sa odovzdávajú funkciám, závisí od typu kódu, ktorý zobrazuje úspešnú požiadavku alebo vykonanie.

Ak kód (napríklad 200) označuje úspešnú požiadavku, potom sa uložia argumenty z tých, ktoré boli odovzdané funkcii, čo je označené parametrom úspechu.

V iných prípadoch (napríklad, keď je kód odpovede 404, čo znamená, že súbor, ktorý sa má dotazovať, sa nenašiel), sú argumenty vynechané z argumentov, ktoré boli odovzdané funkcii, čo indikuje parameter error.

Tieto parametre umožňujú doladiť interakciu medzi jQuery a Ajaxom. Ako viete, táto služba neposkytuje komplexné informácie o vysielacích kódoch.Často s tým bojujem v procese zlepšovania interakcie medzi prehliadačom a serverom, takže chcem pochopiť, prečo jQuery nefunguje tak, ako by som chcel.

V tomto prípade mením okrem parametrov úspechu a chyby a zobrazovania informácií na konzole aj parameter statusCode.

Keďže tieto parametre sa vyberajú individuálne, najprv sa vyberú funkcie úspechu a chyby a potom funkcie špecifikované parametrom statusCode.

Funkciám sa odovzdávajú údaje prijaté zo servera a hodnota parametra dataType.

Ak parameter dataType nie je overený, potom sa druhému argumentu priradí hodnota nedefinovaná.

Je vašou zodpovednosťou aktualizovať filtrované údaje.

Predmetom našej úcty sú údaje vo formáte JSON:

Var filterData = $.parseJSON(data);

filterData.shift();

return JSON.stringify(filteredData.reverse());

... Pre zvýšenie názornosti zadku je dokončených niekoľko dodatočných operácií. Najprv sa údaje JSON skonvertujú do poľa JavaScript pomocou metódy jQuery parseJSON.

Potom sa prvý prvok odstráni z poľa pomocou metódy shift() a poradie prvkov sa obráti pomocou metódy reverse().

V ktorej aplikácii je funkcia registrovaná pre dátový typ text html.

Vráťte rešpekt k medzere medzi komponentmi na typ MIME (na formulárovom účte položky text/html).

Funkcia prijíma dáta prijaté zo servera a vracia spracované dáta.

Spôsob, ako transformovať údaje, je odovzdať fragment HTML, ktorý sa nachádza v súbore flowers.html, funkcii $() a vrátiť výsledok.

Hviezda je nakreslená na objekt, ktorý je odovzdaný ako dátový argument do funkcie úspechu, primárnej metódy jQuery.

Pri práci na opätovnom vytváraní dát sa dá zabrať.

Vždy dúfam, že si nájdem stále viac času na prácu na týchto dodatočných funkciách.

Niekedy je napríklad menej náročné skomprimovať údaje do šablóny JSON a odovzdať výsledné prvky HTML.

A hoci je táto technika veľmi šikovná, poslúži medvediu službu, ak chcete rozšíriť svoj kód alebo napríklad budete musieť zorganizovať intenzívne spracovanie údajov, aby ste ich extrahovali z výstupného formulára.

Filtrácia nápojov

Metóda ajaxSetup() nastavuje základné hodnoty konfiguračných parametrov, ktoré sú konštantné pred všetkými požiadavkami Ajax.

Schopnosť dynamicky upravovať parametre pre niekoľko požiadaviek Ajax poskytuje metóda ajaxPrefilter().

Príklad tejto metódy je uvedený nižšie:

$(function() ( $.ajaxSetup(( časový limit: 15000, globálne: false, error: function(jqxhr, status, errorMsg)) ( $()) .text("Status: " + status + " Pardon: " + errorMsg) .insertAfter("h1" konvertory: ( "text html": function(data) ( return $(data); ) ))) ( if (originalSettings.dataType == "html ") ( settings.timeout =); 2000; ) else ( jqxhr.abort(); ) )) $.ajax(( url: "kvety.html", dataType: " html", success: function(data, status, jqxhr) ( var elems = data.filter ("div").addClass("dcell" ).appendTo("#riadok1" ).

Funkcia sa zobrazí pri každej novej požiadavke Ajax.

Argumenty, ktoré sa odovzdávajú funkcii, sú vstupné parametre (vrátane všetkých štandardných hodnôt, ktoré ste nastavili pre metódu ajaxSetup()), ako aj výstupné parametre odovzdané metóde ajax() (vrátane všetkých hodnôt, ktoré boli pridané na metódu ajax() Ektu jqXHR.
Vykonávame zmeny v objekte, ktorý je odovzdaný ako prvý argument, ako je znázornené v príklade.

Ak je v tomto scenári jedným z parametrov odovzdaných metóde ajax() parameter dataType, hodnota časového limitu sa nastaví na dve sekundy.

Aby sa predišlo riešeniu dotazu, pre objekt jqXHR sa volá metóda abort().

Funguje to tak, že sa stiahne na server bez opätovnej ochrany stránky.

V dôsledku toho sa všetky požiadavky bez reštartovania stránky sťahujú asynchrónne (takže po odoslaní požiadavky na server stránka neodkladá svoju prácu v stiahnutých kanáloch).

Ak potrebujete synchrónne protokolovanie, nastavte parameter na hodnotu false .

Požiadavky naprieč doménami a požiadavky ako „jsonp“ nemožno pripojiť v synchrónnom režime.

Upozorňujeme, že zadávanie požiadaviek v synchrónnom režime môže mať za následok zablokovanie stránky a dock nebude vyplnený.

Toto pole obsahuje funkciu, ktorá sa zavolá priamo pred požiadavkou ajax na server.

Táto funkcia môže byť užitočná na úpravu objektu jqXHR (v starších verziách knižnice (do 1.5) sa namiesto jqXHR používa XMLHttpRequest).

Môžete napríklad zmeniť/vložiť požadované hlavičky. Object-jqXHR sa odovzdá funkcii ako prvý argument.Ďalším argumentom je úprava napájania.

Pre toto pole môžete zadať ďalšie hlavičky.

Tieto zmeny sa zadajú pred kliknutím na predložku, v ktorej je možné vykonať akékoľvek zostávajúce opravy hlavičky.

Označuje funkcie, ktoré sa budú volať, keď server odošle požiadavku jsonp.

jQuery štandardne generuje pomerne veľa funkcií, čo je krátka verzia, ktorá uľahčí prácu knižnice.

Jedným z dôvodov zavedenia výkonnej funkcie na spracovanie požiadaviek jsonp je zníženie ukladania žiadostí GET do vyrovnávacej pamäte.

Počnúc verziou jQuery-1.5 môžete v tomto parametri zadať funkciu na spracovanie odpovede servera sami.

V tomto prípade je táto funkcia zodpovedná za rotáciu údajov z dátového servera (pre túto funkciu budú dostupné v prvom parametri). V prípade propagačných údajov sa údaje prenášané na server najskôr skonvertujú na riadok (formát adresy URL: fName1=hodnota1&fName2=hodnota2&...) v tvare „application/x-www-form-urlencoded“.

Ak potrebujete odoslať údaje, ktoré nie je možné dodať s takýmto spracovaním (napríklad dokument DOM), povoľte možnosť processData.

Tento parameter sa používa pre medzidoménové ajaxové požiadavky typu GET, dataType môže byť buď "jsonp" alebo "script".

To znamená kódovanie, v tomto prípade sa použije napájanie z viacerých domén.

Je to potrebné, ak server na cudzej doméne používa rovnaké kódovanie ako na serveri v rovnakej doméne.

Od zavolania funkcie $.ajax je potrebná hodina. jsonpCallback Môže sa stať, že v tomto momente bude spustených množstvo ďalších dotazov a prehliadač bude spustený v okne dotazov na streamovanie.

Aká hanba

možno dokončiť, aj keď chcete proces skutočne spustiť bez toho, aby ste ho ešte spustili.

V jQuery-1.4, keď je čas spracovania dokončený, objekt XMLHttpRequest prejde do fázy spracovania a je možné zavolať prístup k jeho poliam. Vo Firefoxe 3.0 a novšom sa požiadavky skriptu a JSONP pri zmene času spustenia neprerušia.

Po skončení hodiny bude smrad ukončený.

Funkcia na dodanie objektu XMLHttpRequest.

Pre prehliadače IE je tento objekt spravidla ActiveXObject a v ostatných prípadoch je to XMLHttpRequest.

Pomocou tohto dodatočného parametra môžete zobraziť oficiálnu verziu tohto objektu.

(Táto oprava sa objavila v jQuery-1.5.1) Nastavte páry (názov:hodnoty) na zmenu/pridanie hodnoty požadovaných polí objektu XMLHttpRequest. Toto oprávnenie môžete napríklad nastaviť z Credentials na true, keď otvoríte požiadavku z viacerých domén:$.ajax((url: a_cross_domain_url, xhrFields: (withCredentials: true)))); V jQuery-1.5 výkon withCredentials nie je podporovaný natívnou požiadavkou XMLHttpRequest a v žiadosti medzi doménami bude toto pole ignorované. Všetky aktuálne verzie knižnice neboli opravené. Obrobniki podіy Nastavenia beforeSend, error, dataFilter, success a complete (ich popisy sú v predchádzajúcej časti) vám umožňujú nainštalovať samplery, ako napríklad moment vykonania každej požiadavky Ajax. predOdoslaním Pred odoslaním požiadavky na server je potrebné počkať.

chyba

Bude sa to pýtať niekedy v blízkej budúcnosti.

Počnúc jQuery-1.5 metóda $.ajax() otáča objekt jqXHR, ktorý tiež implementuje odložené rozhranie, ktoré vám umožňuje špecifikovať ďalšie obslužné programy wikiname.

Okrem štandardných metód odložených pre objekt .done(), .fail() a .then() , okrem ktorých môžete nainštalovať vyhľadávače, jqXHR implementuje aj .success(), .error() a .complete( ).

Toto je z dôvodu prehľadnosti zhrnuté do základných názvov metód, ktoré sa používajú na inštaláciu generátorov požiadaviek ajax. Počnúc jQuery-1.8 sa však tieto tri metódy stanú nevhodnými pre wiki. Pri určitých typoch požiadaviek, ako sú požiadavky jsonp alebo GET medzi doménami, sa neodovzdá základný objekt XMLHttpRequest.

Pre typ vstupu odovzdaného do procesorov XMLHttpRequest a textStatus budú hodnoty nedefinované.

Uprostred analýzy to zmeňte, aby ste zmenili hodnotu parametra

kontext. Bohužiaľ, keďže neexistujú žiadne úlohy, budete musieť odstrániť predmet úpravy. parameter dataType Funkcia $.ajax() zisťuje typ údajov odosielaných serverom na server (pomocou metód MIME). Okrem toho je možné konkrétne uviesť (špecifikovať), ako sa majú údaje interpretovať. Vyhľadajte ďalšie parametre dataType. Možné hodnoty parametrov: "xml"— XML dokument bude dostupný v textovom zobrazení.

Môžete s ním pracovať pomocou štandardných metód jQuery (ako s html dokumentom)."html"

- Útržky HTML budú k dispozícii v textovom zobrazení.: typ údajov, typ údajov úlohy nie je zodpovedný za superčítanie MIME informácií poskytnutých serverom.

Napríklad xml údaje sú reprezentované serverom ako text/xml alebo application/xml .

Ak to nie je uvedené, jquery sa pokúsi skonvertovať údaje prevzaté z hodnôt typu (správa o tejto časti Konvertory).

Preťažovanie údajov na serveri Ak chcete začať, server bude kontaktovaný pomocou metódy HTTP GET. Ak chcete pracovať pomocou metódy POST, budete musieť zadať príslušné hodnoty v nakonfigurovanom type .

Dáta spracované metódou POST budú konvertované do UTF-8, pretože sú v inom kódovaní, ako to vyžaduje štandard W3C XMLHTTPRequest. Dátový parameter môže byť priradený buď v riadku s formátom key1 = value1 & key2 = value2 (formát pre prenos údajov v url), alebo ako objekt s množinou párov (názov: hodnota) - (key1: "value1" , kľúč2: "hodnota2").

Nakoniec pred odoslaním údajov jQuery znova vytvorí objekt úlohy v riadku pomocou $.param() .

Dá sa to však zmeniť zadaním hodnoty false do nakonfigurovaných processData.

Transformácia je celkom neočakávaná, napríklad pri odosielaní xml objektu na server.

Z tohto dôvodu by ste mali zmeniť nastavenia contentType

application/x-www-form-urlencoded

väčší typ mím.

Za týmto účelom požiadam server o potrebné autentifikačné údaje (login/heslo), ktoré je možné zadať v nakonfigurovanom používateľskom mene a hesle Ajax request.

Hodina spevu bude oznámená serveru.

Ak server nejaký čas neodpovedá, skončí sa ladne (stav „časový limit“).

Hodinu, kedy server prijme spojenie, je možné zmeniť nastavením požadovanej hodnoty (v milisekundách) pre nakonfigurovaný časový limit.

Môže sa stať, že kódovanie hostiteľa sa prekrýva s kódovaním súboru, ktoré je požadované v požiadavke javascript ajax.

V takýchto situáciách je potrebné špecifikovať zostávajúci kód v nakonfigurovanom scriptCharset.

Vo väčšine prípadov sa požiadavky ajax generujú asynchrónne, ale v niektorých prípadoch možno budete musieť odoslať požiadavku neskôr (ak nie je možné, aby sa skript ďalej pripojil bez odpojenia pripojenia od servera).

Môžete ho nastaviť synchrónne, ak povolíte async.

Je však dôležité si uvedomiť, že v tejto situácii je stanica „sub-dependentná“, keď je zvolený typ servera.

Použiť vikoristannya

Najjednoduchšou možnosťou by bolo zavolať $.ajax() bez zadania parametrov:

$.ajax();

// požiadavka GET bude odoslaná na server na URL streamovacej stránky bez zadania akýchkoľvek parametrov.

Ak potrebujete upraviť a upraviť súbor js, môžete to urobiť takto:

$.ajax (( typ: "GET" , url: "test.js" , dataType: "script" ) );

Požiadavka POST bude odoslaná na server zadaním dvoch parametrov a informovaním korešpondenta o úspešnej požiadavke:

$.ajax (( typ: "POST" , url: "some.php" , údaje: "meno=Ján&umiestnenie=Boston" , úspech: funkcia (správa) ( upozornenie ( "Príjem z Dax: " + správa ) ; ) ) ) ;

Aktualizované namiesto požadovanej html stránky:

Počnúc verziou jQuery-1.5 sa objavili tri nové funkcie, ktoré vám umožňujú používať $.ajax() ešte výkonnejšie.

Prvý z nich (Predfiltre) vám umožňuje vykonávať ďalšie manipulácie tesne pred odoslaním požiadavky.

Ako alternatívu k inému prístupu (konvertory) môžete použiť jQuery na konverziu výstupu z dátového servera, pretože nezodpovedá zdrojovému formátu.

Tretí prístup je najlacnejší, umožňuje vám nezávisle organizovať dodávku na server.

Predfiltre
Tento prístup sa nachádza v nainštalovanom vzorkovači, ktorý sa volá pred výberom žiadosti o vzhľad ajax. Tento vzorkovač prenáša množstvo ďalších balíkov ajax.
Vložené za dodatočnú funkciu $.ajaxPrefilter() :$.ajaxPrefilter (funkcia (options, originalOptions, jqXHR) ( ) );
De možnosti

— nastavenie prívodu prúdu,

pôvodné možnosti

— príprava po upratovaní,

jqXHR

- jqXHR-objekt požadovaného objektu.

Na Prefiltroch si môžete manuálne skontrolovať úpravu koristuvach (nová, neznáma knižničná úprava, súčasťou záznamu).

Môžete napríklad zadať nastavenie abortOnRetry, ak je povolené, všetky nedokončené požiadavky budú zľavnené, ak sa ďalšia požiadavka nájde na rovnakej adrese URL:

var currentRequests = ();

$.ajaxPrefilter (funkcia (options, originalOptions, jqXHR) ( if (options.abortOnRetry) ( if (currentRequests[ options.url ])) ( currentRequests [ options.url ] .abort () ; ) currentRequests [ options.url ] = ;)));

V ajaxPrefilter môžete manuálne spracovať a prispôsobiť.

Tento princíp spočíva v nastavení analyzátora, čo znamená, že údaje v parametroch dataType sa nezhodujú s typom údajov odosielaných serverom.

Prevodníky potrebujú nastaviť ajax, aby ste mohli vytvárať úlohy globálne:

// týmto spôsobom môžete nastaviť konvertor, ktorý nahradí // vami zadaný typ údajov typom mydatatype a údaje sa vrátia do typu text $.ajaxSetup (( converters: ( "text mydatatype" : function ( textValue ) ( if (valid( textValue ) ) // spracovanie prenášaného textu return mydatatypeValue ) else ( // keďže dáta odoslané serverom sa nezdajú byť platné, // môžete zavolať vinu. throw exceptionObject;))) )));

Prevodníky vám pomôžu zadať platný (Koristuvat) typ údajov.

Je dôležité poznamenať, že v mene takéhoto typu údajov je na vine veľa zmätku!

Zapíšte údaje do typu „mydatatype“ a vyzerajú takto:

$.ajax(url, (dataType: "mydatatype"));

V ére moderného webu sa väčšina webových stránok stáva čoraz interaktívnejšou.

Kým predtým sme na získanie aktualizovaných údajov potrebovali aktualizovať celú stránku, teraz sa objavili technológie, ktoré nám umožňujú neukradnúť celú stránku, ale len jej obmedzenú časť.

To poskytuje bezpečnosť prispievateľom aj vlastníkom servera a pre zákazníka bude záujem o stránku väčší, takže zaujme iba časť stránky a server nemusí stránku okamžite generovať a dodávať. to ї koristuvachevi.
Syntax súboru index.php

Výukový program AJAX

Najjednoduchší spôsob práce s AJAXom je zahrnúť framework jQuery, ktorý som už vyvinul.

jQuery nám poskytuje jednoduchú syntax na odosielanie požiadaviek AJAX, tak prečo túto výhodu nevyužiť?

Vytvorenie js skriptu

Syntax súboru validate.js

$(document).ready(function())( var email = ""; $("#email").keyup(function())( var value = $(this).val(); $.ajax(( zadajte: "POST", url:"email.php", data:"email="+hodnota, success:function(msg)( if(msg == "valid")( $("#message").html( "Tsei Email môže byť vikorystuvati.Tse Email je už zaneprázdnený." ) ) )); url: "email.php", data:"add_email="+email, success:function(msg)( $("#message") ).html(msg )));

PHP kompilátor
Tento skript vytlačí POST od klienta, spracuje ho a zvráti výsledok.

AJAX prečíta výsledok a na základe neho sa rozhodne.

Syntax súboru email.php

$connection = mysqli_connect("localhost", "e-mail", "e-mail", "e-mail");

if(isset($_POST["e-mail"]) && $_POST["e-mail"] != "")( $email = $_POST["e-mail"]; $email = mysqli_real_escape_string($connection,$email); ak (!filter_var($email, FILTER_VALIDATE_EMAIL))( echo "invalid"; )else( $sql = "SELECT id FROM email WHERE email="$email""; $result = mysqli_query($connection,$sql); if( mysqli_num_rows($result) == 1)( echo "invalid"; )else( echo "valid"; ) ) ) if(isset($_POST["add_email"]) && $_POST["add_email"] != "" )( $email = mysqli_real_escape_string($connection,$_POST["add_email"]); $sql = "INSERT INTO email(email) VALUES("$email")"; if(mysqli_query($connection,$sql))( echo Success"; )else( echo "Chyba"; ) )

Naše PHP skripty majú pôvodný kód, ktorý generuje príspevok a ďalší text na stránke.
Výsledkom je, že AJAX odošle požiadavku PHP skriptu, ktorý spracuje a zobrazí výsledok, AJAX prečíta výsledok a zmení stránku v reálnom čase.
AJAX odovzdá POST skriptu pre ďalšiu časť kódu:
$.ajax(( type:"POST", url:"email.php", data:"email="+hodnota, success:function(msg)( if(msg == "valid")) ( $("#) message ").html("Tento e-mail možno použiť ako vikorista."); email = hodnota; )else( $("#správa").html("Tento e-mail je už dostupný."); ) ) )) );

V samotnom skripte je overenie prítomnosti emailu v databáze dokončené po zadaní znaku do poľa email.
V skripte je spracovanie vstupu indikované záznamom $("#email").keyup(function()());
, ktorý skontroluje stlačenie tlačidla v poli s id = "email" .
Ako vidíte, kód je jednoduchý a nevyžaduje veľa pochopenia, všetko je založené na metóde keyup() – stlačenie klávesu, kliknutie() – kliknutie myšou na prvok.
Ďalej nasleduje požiadavka AJAX a odpoveď na skript.

Pomocou PHP a Ajaxu teda môžete nájsť prakticky neobmedzené možnosti vytvárania interaktívnych stránok.

Tento kód netvrdí, že je vysoko kvalitný, ale ak ho vyviniete, pridáte správne overenia na toho istého klienta a servera, pošlete css, potom ho môžete vo všeobecnosti použiť vo svojich projektoch.

Ak ste dobre najedení, neváhajte napísať komentáre.

Prajem krásny deň a krásny deň :)

AJAX je skupina technológií, ktoré používajú weboví vývojári na vytváranie interaktívnych aplikácií.

AJAX vám umožňuje prenášať dáta zo servera bez opätovného načítania stránky.

Takýmto spôsobom možno eliminovať aj nepriateľské výsledky.

A knižnica jQuery výrazne zjednodušuje implementáciu AJAX pomocou ďalších metód.

Na implementáciu technológie sa používa metóda $.ajax alebo jQuery.ajax:

$.ajax(výkon) alebo $.ajax(url [, moc])

Ďalší parameter pridaný do verzie 1.5 jQuery.

url - adresy požadovanej stránky;

vlastnosti – žiada sa sila.

Úplný zoznam parametrov nájdete v dokumentácii jQuery.

V tejto lekcii používame množstvo parametrov, ktoré sa najčastejšie používajú.

úspech (funkcia) - táto funkcia sa volá po úspešnom dokončení požiadavky.

Funkcia vyberá 1 až 3 parametre (v závislosti od verzie knižnice).

Prvou možnosťou je vždy odstrániť údaje, ktoré sa vrátia zo servera.

údaje (objekt/riadok) - údaje od zákazníka, ktoré sa prenesú na požadovanú stránku.

dataType (riadok) - možné hodnoty: xml, json, skript alebo html.

Popis typu údajov, ktoré sa nachádzajú vo výstupe servera.

typ (riadok) – typ vstupu.

$.ajax(( typ: "POST", url: "response.php?action=sample2", data: "name=Andrew&nickname=Aramis", success: function(data)( $(.results").html( ) údaje);

Server otočí riadok predtým vložených údajov:

Echo "Butt 2 - prenos úspešne dokončený. Parametre: name=".

$_POST["meno"] .

", prezývka=".

$_POST["prezývka"];

zadok 3

Odovzdanie kódu JavaScript

$.ajax(( dataType: "script", url: "response.php?action=sample3", ))

Server napíše kód:

Echo "$(.results").html("App 3 - Wikonanny JavaScript");";

zadok 4

Vikoristovuyemo XML.