Standaard is het $ .ajax-verzoek in jQuery ingesteld op asynchroon. De variabelenaam is asynchroon en de waarde is ingesteld op true. Dit gaf me ook een beetje verwarring toen ik er voor het eerst over leerde, dus laten we het bespreken.
Asynchroon versus synchroon
De standaardinstelling in jQuery. In mijn ervaring zou Asynchronous bijna altijd de oplossing moeten bieden. Er zijn ook in het bijzonder 2 situaties die niet eens een synchrone oproep toestaan.
- Cross-domeinverzoeken. Als ik een Ajax-verzoek van techjunkie.com doe naar een bestand op whereever.com (een heel ander domein), zou dat een domeinoverschrijdend verzoek zijn.
- jsonp - Als u JSON-gegevens voor meerdere domeinen wilt ophalen, is JSONP wat u zoekt.
Wanneer Synchroon gebruiken
Je moet er eerst rekening mee houden dat als je async instelt op false, je browser vastloopt. Het vergrendelt het volledig. Niet alleen uw pagina, maar elke pagina die de gebruiker mogelijk heeft geopend. Als uw server bijvoorbeeld halverwege het verzoek vertraagt, hebt u zijn browser effectief uitgeschakeld totdat uw server de kans krijgt de benodigde gegevens in te halen en door te geven.
In plaats van het te riskeren met een synchrone oproep, geeft u gewoon een callback-functie op bij succes of fout. U komt op hetzelfde eindpunt zonder de browse-ervaring van de gebruiker mogelijk te verpesten. Kortom, gebruik geen synchrone oproep. Het is slecht voor je applicatie en UX.