У меня есть экран, в котором есть разные функции. Существует раскрывающийся список, в котором происходит вызов Ajax, и в ответ возвращается jsp-страница. Этот ответ я затем помещаю в div ниже моего раскрывающегося списка. Теперь я хочу, чтобы до тех пор, пока этот jsp не будет заполнен элементом div, экран заблокирован либо в окне предупреждения, либо в другом диалоговом окне. Как я могу достичь этого?JavaScript: как заблокировать весь экран во время ожидания ответа ajax
ответ
Если вы действительно хотите, чтобы заблокировать пользовательский интерфейс, просто сделать запрос AJAX синхронное.
Это заблокирует всю страницу, и пользователь не будет знать, что что-то происходит в фоновом режиме. Предположим, что ваш вызов ajax занимает 5 секунд. Пользователь должен иметь некоторую информацию о том, что что-то происходит в фоновом режиме. Сделав запрос ajax для синхронизации, ваша страница будет просто заморожена. –
полностью согласен с Алексом. Это очень опасное решение –
Большое вам спасибо – Charmie
Вы можете использовать плагин blockui jquery от here. Вызовите blockUI перед тем, как сделать ajax-вызов и разблокировать UI в своем обратном вызове ajax.
Я бы использовал JQuery и JQuery UI. JQuery UI предоставляет модальное диалоговое окно, в котором вы можете разместить загрузочное сообщение, которое не позволит пользователю щелкнуть в другом месте экрана.
вы можете использовать div, а также z-index, opacity и курсор. хотя я не знаю вашего приложения, блокировка всей страницы не похожа на отличный пользовательский интерфейс для меня. возможно, вы можете поместить div только по затронутому району страницы
Просто используйте булевский флаг, который до тех пор, пока он не установлен (при получении содержимого), вы блокируете функциональность. И как только этот флаг установлен, продолжайте дальше. Предполагая, что у вас есть контроль над этими функциями.
@linusunis кормили,
Если вы хотите запретить пользователю нажимать на все, что я предлагаю наложив Div элемент &, возможно, сделать его полупрозрачным. Ниже приведен CSS для div & Код jQuery для анимации отображения наложения экрана и удаления наложения экрана. Просто позвоните «block_screen», когда вы делаете свой звонок & «unblock_screen» после того, как вы получили данные &, разместили ваш новый div на странице. Это просто с головы, так что вам, возможно, придется дважды проверять ошибки, но это выглядит хорошо для меня.
Для этого вам необходимо включить jQuery на странице. Скачать его здесь: http://code.jquery.com/jquery-1.7.1.min.js
<style type="text/css">
.blockDiv {
position: absolute:
top: 0px;
left: 0px;
background-color: #FFF;
width: 0px;
height: 0px;
z-index: 10;
}
</style>
<script type="text/javascript" language="javascript">
function block_screen() {
$('<div id="screenBlock"></div>').appendTo('body');
$('#screenBlock').css({ opacity: 0, width: $(document).width(), height: $(document).height() });
$('#screenBlock').addClass('blockDiv');
$('#screenBlock').animate({opacity: 0.7}, 200);
}
function unblock_screen() {
$('#screenBlock').animate({opacity: 0}, 200, function() {
$('#screenBlock').remove();
});
}
</script>
- 1. Функция javascript вызвала цикл во время ожидания ответа ajax
- 2. Android - как заблокировать экран во фрагменте во время выполнения
- 3. Функция блока во время ожидания ответа
- 4. QMessage во время ожидания ответа команды ping
- 5. Время ожидания ответа Owin
- 6. Показать анимацию на странице jsp во время ожидания ответа сервера
- 7. Как приостановить выполнение кода во время ожидания ответа UIAlertView?
- 8. Как показать сообщение во время ожидания ответа с веб-сервера
- 9. Позиция CSS во весь экран
- 10. Как заблокировать ориентацию во время выполнения
- 11. уведомление пользователя во время ожидания
- 12. Калитка: отображение кнопки во время ответа Ajax
- 13. Время ожидания ответа на запрос
- 14. Синхронный запрос AJAX и операции во время ожидания
- 15. [android] [lock_screen] Разблокировать экран ожидания во время входящего sip-вызова
- 16. Как заставить компоновку входить во весь экран
- 17. Обратный вызов запроса javascript ajax без ожидания ответа
- 18. Как заблокировать определенную часть страницы во время загрузки ajax?
- 19. Консоль ошибок во время ожидания ответа API - React/Redux
- 20. как показать фрагмент во весь экран
- 21. сервер зависает все запросы во время ожидания внешнего ответа api
- 22. Как заблокировать экран?
- 23. Как получить загрузчик ожидания во время вызова AJAX
- 24. Экран Время выдергивания во время некоторого процесса
- 25. Сохранять порядок вывода во время ожидания между вызовами API AJAX
- 26. JavaScript Asyn Возврат без ожидания ответа
- 27. Выполняется ли время ожидания Javascript во время спящего мобильного устройства?
- 28. Как заблокировать экран Android в то время как приложение работает?
- 29. Заблокировать событие во время анимации
- 30. Отображение загрузки анимации во время ожидания
Вы получаете много JQuery ответов, но я не вижу каких-либо указаний в этом (или ранее) вопросы, которые вы используете JQuery. Я ошибаюсь? –