Anonim

Pagal numatytuosius nustatymus, „jQuery“ užklausa $ .ajax yra nustatyta kaip asinchroninė. Kintamojo vardas yra asinchroninis, o vertė nustatyta ties. Tai mane taip pat šiek tiek supainiojo, kai pirmą kartą apie tai sužinojau, todėl pažvelkime į tai.

Asinchroninis vs sinchroninis

Numatytasis „jQuery“ nustatymas. Mano patirtimi, asinchroninis beveik visada turėtų padaryti triuką. Taip pat yra 2 situacijos, kurios net neleidžia sinchroninio skambučio.

  • Kelių domenų užklausos. Jei aš darau ajax prašymą iš techjunkie.com į failą, esantį whereever.com (visiškai skirtingas domenas), tai būtų kelių domenų užklausa.
  • jsonp - jei norite nuskaityti JSON duomenis keliuose domenuose, JSONP yra tai, ko ieškote.

Kada naudoti sinchroninį

Pirmiausia turėtumėte žinoti, kad async nustatymas į klaidingą užšaldo jūsų naršyklę. Tai jį visiškai užrakina. Ne tik jūsų puslapis, bet ir kiekvienas puslapis, kurį gali atidaryti vartotojas. Pvz., Jei jūsų serveris sulėtino užklausos teikimą, jūs veiksmingai išjungėte naršyklę, kol jūsų serveris turės galimybę susigaudyti ir perduoti reikalingus duomenis.

Užuot rizikavę dėl sinchroninio skambučio, tiesiog nurodykite sėkmės ar klaidos atšaukimo funkciją. Jūs pateksite į tą pačią baigtį, nesugadindami vartotojo naršymo patirties. Trumpai tariant, nenaudokite sinchroninio skambučio. Tai kenkia jūsų programai ir UX.

Skirtumas tarp sinchroninio ir asinchroninio ajax