Условия, когда браузер может вызывать обработчики событий - PullRequest
1 голос
/ 10 ноября 2010

при работе с асинхронными XHR-запросами в Javascript я часто задаюсь вопросом, существуют ли условия, когда браузер может вызывать обратный вызов onReadyStateChange.Если бы их не было, возникли бы некоторые проблемы, как показано в следующем примере:

var state = -1;
doAsyncXhrReqeust("foo.bar", function() {
   state = 1;
});
function doStateDependendAction() {
   if(state === 1)
      alert("file is available");

   // if the callback above was called at this point, nothing would happen

   else if(state === -1)
      alert("file isn't available");
}; 

function doAsyncXhrRequest(url, callback) {
   // simple AJAX-helper-function
};

Как видите, doStateDependendAction ничего не делает, если состояние изменяется между двумя операторами if, которые проверяютсостояние.
Я знаю, что в этом случае я могу обойти это, назначив состояние локальной переменной перед проверкой значения.

Так что вопрос в том, нужно ли мне всегдапозаботься об этом.Мой вопрос также относится к другим событиям, таким как взаимодействие с пользователем и веб-работники.

С уважением,
Uli

...