Попробуйте использовать JavaScript events .Вы можете зарегистрировать любую функцию, которая будет вызываться при наступлении определенного события.Либо используйте некоторые из предопределенных событий , чтобы сигнализировать о завершении вашего кода, либо используйте что-то вроде Yahoo!библиотека для создания пользовательских событий , которые могут представлять завершение запроса к серверу (нашел последний с коротким поиском в Google, но выглядит многообещающе).
Я ожидал, что JS будет иметь встроенныйв пользовательской архитектуре событий, но, очевидно, это не так.Таким образом, вам нужно использовать внешние библиотеки, такие как Yahoo!вещь.Может быть, это изменится в ближайшее время.Это выше моих знаний.Но я, безусловно, могу порекомендовать использовать события, потому что они решают именно ту проблему, которую вы описали.
(В качестве альтернативы вы можете делать ожидание занятости, как описано в Тариаме. Либо с циклами сна или вообще без ожидания ожидания не рекомендуется.)1011 *
Иллюстрация:
<script>
// register function b() for custom event
function a() {
//upload
// (takes time... but no busy wait)
//fire custom event
}
function b() {
//do some other code
}
</script>
<body>
<form onsubmit="a()">
</form>
</body>