2009-02-25 2 views
1

У меня есть метод в моем контроллере, который выполняет работу на сервере. Я буду использовать вызов Ajax (jQuery), чтобы запустить его по ссылке на странице. Это может занять некоторое время, и мне нужно показать какой-то статус на странице. Мне не обязательно «26% сделано ...», но больше статус, показывающий «рабочий» или «сделанный».Показать статус процесса с использованием AJAX и ASP.NET MVC

Как получить jQuery, чтобы постоянно тянуть за статус задания? Или это нужно решить по-другому?

ответ

1

Вам потребуется какое-то состояние для хранения статуса задачи, к которой могут обращаться как задачи, так и Javascript. Например, кэш сервера. Скажем, вы используете ключ TaskComplete.

удар от вашей задачи с JavaScript через AJAX

В то время как Ваша задача Запуск

Задача обновления кэша сервера Item

End While

Parallel

Использование Javascript для опроса t он кэш значение

пнуть вашу задачу с JavaScript через AJAX

Хотя Ajax Response Не Задача выполнена

подождать 2 секунды

индивидуального вызова Java-функции через AJAX снова, чтобы прочитать значение кэш-сервер Item

выполнение соответствующей задачи на основе его стоимости

статьи вы м ау найти полезно здесь:

http://msdn.microsoft.com/en-us/magazine/cc163393.aspx

+0

OK. Хорошо, вот что я подумал. Но как мне сделать этот «цикл»/«таймер» в jQuery, чтобы продолжать получать статус? – Riri

+0

Использование: setTimeout (your_callback, timeout_in_ms); – kgiannakakis

+0

Да, используя setTimeout, хотя я считаю, что лучше использовать следующий синтаксис var t = setInterval (function() {// выполняем вашу функцию здесь}, миллисекунды); По окончанию clearInterval (t); –

Смежные вопросы