Это связано с тем, что AJAX имеет значение асинхронно , что означает, что функция success
не запускается до тех пор, пока не будет получен ответ от сервера.Итак, эта строка:
$('#box').html('<p>' + response.name + '</p>');
Не запускается до после , когда вы позвонили console.log
, фактически, если вы нажмете быстро или сервер работает медленно, вы можете нажать несколько раздо того, как функция success
завершится один раз.
Даже если ответ мгновенный (например, локальный сервер), поскольку JavaScript является однопоточным, это success
все равно происходит потом ...чтобы увидеть это, просто вставьте console.log('Success')
в вашу функцию success
, тогда вы получите хорошую иллюстрацию порядка и выполнения обратных вызовов.