2015-05-25 3 views
4

У меня есть запрос на очень долго WebAPI, что в основном делает следующие файлы:ASP.NET Ajax WebAPI с прогрессом

1. retrieves a list of item categories from the db 
2. for each category, retrieve all the items in the category 

Теперь, весь процесс занимает очень много времени, и я не хочу, чтобы пользователь ждать пока весь процесс не закончится, если категория закончила загрузку, я хочу, чтобы она вернулась к клиенту.

Кто-нибудь знает, как я могу это сделать? Отправлять запрос и получать уведомления о ходе работы сервером всякий раз, когда часть запроса завершена?

+0

вам нужно разбить ваш запрос. используйте для каждого цикла. если элементы из первой категории загружаются, то делайте что-нибудь с ними перед тем, как перейти на вторую категорию. – Alex

ответ

2

Вы можете использовать SignalR для отправки данных с сервера клиенту, когда он доступен.

Другой вариант - опрос от клиента. Клиент выполняет первоначальный запрос, который запускает процесс на стороне сервера, который подготавливает данные и хранит их где-то (в памяти, в базе данных). Затем клиент проверяет сервер на наличие новых доступных данных до завершения процесса сервера.

0

Вам необходимо оформить запрос. использовать для цикла. если элементы из первой категории загружаются, то делайте что-нибудь с ними перед тем, как перейти на вторую категорию.

, поэтому ваш запрос будет проходить внутри некоторого цикла. Вы можете использовать JQuery или страницы методы, если вы используете ASP.NET WebForms