Событие
A readystatechange
происходит каждый раз, когда изменяется readyState (что несколько раз). Событие
A load
происходит только после успешного выполнения запроса.
В вашем примере вы добавляете несколько дополнительных тестов в ваш обработчик readystatechange
, чтобы проверить, достигло ли оно конечного состояния (4
(если нет ошибок определенного типа, в этом случае это будет 0
)) и чтобы убедиться, что это не ошибка 500
. Существуют другие ошибки, которые не вызывают событие load
.