Standaard is het $ .ajax-verzoek in jQuery ingesteld op asynchroon. De naam van de variabele is async en de waarde is ingesteld op true. Dit gaf me ook een beetje verwarring toen ik er voor het eerst over hoorde, dus laten we erover gaan.
Asynchroon versus synchroon
De standaardinstelling in jQuery. In mijn ervaring zou Asynchronous bijna altijd de truc moeten doen. Er zijn ook 2 situaties in het bijzonder die zelfs geen synchrone oproep toelaten.
- Cross-domeinverzoeken. Als ik een ajax-verzoek doe van techjunkie.com naar een bestand op whereever.com (een heel ander domein), zou dat een verzoek voor een interdomein zijn.
- jsonp - Als u JSON-gegevens zoekt tussen domeinen, is JSONP precies wat u zoekt.
Wanneer Synchroon gebruiken
U moet er zich eerst van bewust zijn dat het instellen van asynchrone op false uw browser blokkeert. Het vergrendelt het volledig. Niet alleen uw pagina, maar elke pagina die de gebruiker mogelijk geopend heeft. Als uw server bijvoorbeeld het middenverzoek vertraagt, hebt u de browser ervan uitgeschakeld totdat uw server de gelegenheid heeft om de benodigde gegevens in te halen en door te geven.
In plaats van het te riskeren met een synchrone aanroep, specificeert u gewoon een callback-functie op succes of fout. U komt bij hetzelfde eindpunt zonder de surfervaring van de gebruiker te verpesten. Kortom, gebruik geen synchrone oproep. Het is slecht voor je toepassing en UX.