В настоящее время я работаю над проектом в ASP.NET MVC 4 и пришел по модулю, где требуется индикатор выполнения. Вопрос, который у меня сейчас возникает, - «Каков наилучший способ реализации индикатора async?».Какова наилучшая практика при обновлении индикатора выполнения?
После некоторого поиска я наткнулся на следующий метод:
- Создайте startEvent() и getProgress() в C# код.
- Использовать javascript setTimeout() для вызова метода getProgress() асинхронно.
(Пример: https://www.devexpress.com/Support/Center/Example/Details/E4244)
Мое замечание этого метода является то, что это приводит к тому, код будет зависеть от тайм-аута вы выбираете. Поэтому для поиска наилучшего и наиболее эффективного тайм-аута потребуется некоторое время.
Теперь метод, который я бы, скорее всего, использовали, прежде чем я исследовал этот вопрос заключается в следующем:
- В коде позади, создать метод handleItem (INT индекс), который принимает индекс и делает все вы хотите сделать с элементом в этом индексе.
- Определите количество элементов, которые хотите обработать, и передайте их на ваш javascript.
- В javascript инициируйте цикл for, который перебирает от 0 до суммы - 1, и для каждого индекса он инициирует ajax-вызов handleItem (i).
- В этом полном выполнении инструкции ajax-call вы можете обновить индикатор выполнения с новой суммой.
Моих вопросов здесь следующие:
- ли это подвергает слишком много логики программы?
- Означает ли это, что слишком много накладных расходов, поскольку каждый вызов идет на сервер и обратно?
- Есть ли другие причины, по которым я должен воздерживаться от использования этого метода?
Заранее спасибо
Koen Morren