AJAX, kas apzīmē asinhrono JavaScript un XML, ir paņēmiens, kas ļauj asinhroniski atjaunināt Web lapas, kas nozīmē, ka pārlūkprogrammai nav jāpārlādē visa lapa, kad ir mainījies tikai mazs datu apjoms lapā. AJAX nosūta tikai atjaunināto informāciju uz serveri un no tā.
Standarta tīmekļa lietojumprogrammas sinhronā veidā apstrādā tīmekļa apmeklētāju un servera mijiedarbību. Tas nozīmē, ka viena lieta notiek pēc otras; serverim nav daudzuzdevumu. Noklikšķinot uz pogas, ziņojums tiek nosūtīts uz serveri un atbilde tiek atgriezta. Jūs nevarat mijiedarboties ar citiem lapas elementiem, kamēr nav saņemta atbilde un lapa nav atjaunināta.
Acīmredzot šāda veida kavēšanās var negatīvi ietekmēt tīmekļa apmeklētāja pieredzi - tātad AJAX.
Kas ir AJAX?
AJAX nav programmēšanas valoda, bet paņēmiens, kas ietver klienta puses skriptu (t.i., skriptu, kas darbojas lietotāja pārlūkprogrammā), kas sazinās ar tīmekļa serveri. Turklāt tā nosaukums ir nedaudz maldinošs: lai gan AJAX lietojumprogramma datu nosūtīšanai varētu izmantot XML, tā varētu izmantot arī vienkāršu tekstu vai JSON tekstu. Bet parasti tas izmanto XMLHttpRequest objektu pārlūkprogrammā, lai pieprasītu datus no servera, un JavaScript, lai parādītu datus.
AJAX: sinhrona vai asinhrona
AJAX var piekļūt serverim gan sinhroni, gan asinhroni:
- Sinhroni, kurā skripts apstājas un pirms turpināšanas gaida servera atbildi.
- Asinhroni, kurā skripts ļauj lapu turpināt apstrādāt un apstrādā atbildi, ja un kad tā pienāk.
Jūsu pieprasījuma apstrāde sinhroni ir līdzīga lapas atkārtotai ielādēšanai, bet visas lapas vietā tiek lejupielādēta tikai pieprasītā informācija. Tāpēc sinhronā AJAX lietošana ir ātrāka nekā tās nelietošana vispār - taču apmeklētājam ir jāgaida, kamēr notiks lejupielāde, pirms varēs turpināt jebkādu turpmāku mijiedarbību ar lapu. Cilvēki zina, ka dažreiz jāgaida lapas ielāde, bet vairums cilvēku nav pieraduši turpināties ar ievērojamu kavēšanos pēc tam, kad viņi atrodas vietnē.
Jūsu pieprasījuma apstrāde asinhroni izvairās no kavēšanās, kamēr notiek izgūšana no servera, jo jūsu apmeklētājs var turpināt mijiedarboties ar tīmekļa lapu; pieprasītā informācija tiks apstrādāta fonā, un atbilde atjauninās lapu, tiklīdz tā pienāk. Turklāt pat tad, ja atbilde tiek kavēta - piemēram, ļoti lielu datu gadījumā - vietnes apmeklētāji to var neuztvert, jo viņi ir aizņemti citur lapā.
Tāpēc vēlamais AJAX izmantošanas veids ir asinhrono zvanu izmantošana, kur vien iespējams. Šis ir AJAX noklusējuma iestatījums.
Kāpēc jāizmanto sinhronā AJAX?
Ja asinhroni zvani nodrošina tik uzlabotu lietotāju pieredzi, kāpēc AJAX vispār piedāvā veidu, kā veikt sinhronos zvanus?
Lai arī asinhroni zvani ir labākā izvēle lielāko daļu laika, retos gadījumos tas nenotiek ir jēga ļaut jūsu apmeklētājam turpināt mijiedarbību ar tīmekļa lapu līdz noteiktam servera puses procesam pabeidz.
Daudzos no šiem gadījumiem var būt labāk nelietot AJAX vispār un tā vietā vienkārši atkārtoti ielādēt visu lapu. Sinhronā opcija AJAX ir paredzēta nelielam skaitam situāciju, kad nevarat izmantot asinhrono zvanu, bet nav nepieciešams atkārtoti ielādēt visu lapu. Piemēram, jums, iespējams, būs jārīkojas ar kādu darījumu apstrādi, kurā pasūtījums ir svarīgs. Apsveriet gadījumu, kad tīmekļa lapai ir jāatgriež apstiprinājuma lapa pēc tam, kad lietotājs ir noklikšķinājis uz kaut kā. Šis uzdevums prasa sinhronizēt pieprasījumus.