MVC 4 - загрузка сообщения или графика
Можно ли отобразить сообщение о загрузке или графику при обработке функции?
В настоящее время у меня есть контроллер, который выполняет все функции перед возвратом представления. Однако, поскольку в состав функции входит процесс ServerXMLHTTP, это может занять более 30 секунд при подключении к стороннему серверу. Это, очевидно, не идеально для пользователя, которому они видят пустой экран, поскольку пользователь ждет xmlHttp.readyState
завершить.
Любая помощь приветствуется:-)
2 ответа
Я нашел, что это решение отлично работает для того, что мне нужно, пожалуйста, смотрите http://blog.michaelckennedy.net/2012/11/13/improve-perceived-performance-of-asp-net-mvc-websites-with-async-partialviews/
как это было очень полезно.
Это пример страницы загрузки JavaScript, которая вставляется между страницами. Этот код размещается на странице перед загрузкой. Я использовал простую кнопку отправки, которая отправляет мой поисковый запрос. Вы можете получить GIF-загрузку AJAX здесь:
<div id="divLoading" style="margin: 0px; padding: 0px; position: fixed; right: 0px;
top: 0px; width: 100%; height: 100%; background-color: #666666; z-index: 30001;
opacity: .8; filter: alpha(opacity=70);display:none">
<p style="position: absolute; top: 30%; left: 45%; color: White;">
Loading, please wait...<img src="../../Content/themes/base/images/ajax-loading.gif">
</p>
</div>
<button type="submit" class="btn btn-success" onclick="JavascriptFunction()"value="filter" name="searchQuery">SUBMIT</button>
<script type="text/javascript" language="javascript">
function JavascriptFunction() {
var url = '@Url.Action("PostMethod", "Home")';
$("#divLoading").show();
$.post(url, null,
function (data) {
$("#PID")[0].innerHTML = data;
$("#divLoading").hide();
});
}
</script>
Обычно, когда пользователь нажимает кнопку отправки, загрузчик появляется до тех пор, пока не будет загружен следующий метод / данные / представление.