Привет всем. Прошу помощи по такой ситуации.
Есть некий веб-сервер (в общем случае нелокальный). Я пишу для него на javascript с применением jQuery клиентскую страницу для доступа к определенным функциям. Страница запрашивает с сервера информацию, дает пользователю ее отредактировать и отправляет обратно на сервер. Перед отправкой надо проверить данные на допустимость. Стандартная, в общем-то задача. Но неприятность заключается в том, что одно из введенных пользователем полей я на клиентской стороне проверить не могу - для этого надо посылать запрос на сервер. При этом пока сервер не ответил, форму для редактирования закрывать нельзя, ибо если он ответит, что данные нехорошие, надо пользователю дать возможность их исправить.
В принципе задача может быть решена путем явного указания на необходимость синхронного запроса:
jQuery.ajaxSetup( { async: false } );
jQuery.getJSON( ... );
jQuery.ajaxSetup( { async: true } );
Однако меня смущают предупреждения о том, что такая методика блокирует весь броузер на то время, пока на запрос не придет ответ. И в документации явно указывается, что это крайне нежелательная практика, и в разных описаниях-учебниках тоже.
Соответственно вопрос: как то же самое сделать совсем правильно? Чтобы и синхронность была, и никто не ругался, и никаких блокировок не было.