Используя jquery, как насчет: 1) дождаться загрузки страницы в браузере; 2) вызвать функцию JavaScript, которая выполняет асинхронный вызов на сервер; 3) дождаться результата; 4) когда результат поступит с сервера, отобразить его в браузере?
Что-то вроде:
Javascript / jquery на веб-странице:
$().ready(GetExchangeRates);
function GetExchangeRates()
{
// TODO: Maybe show a *loading* animation.
$.get("/Currency/GetExchangeRates",
null, GetExchangeRatesCompleted, "json");
}
function GetExchangeRatesCompleted(result)
{
// TODO: Hide *loading* animation.
// TODO: Display result on page.
}
Действие контроллера (C #):
public class CurrencyController : Controller
{
public JsonResult GetExchangeRates()
{
var exchangeRates = _slowWebService.GetExchangeRates();
return Json(exchangeRates);
}
}
Другое дело:
Если вы не можете кэшировать обменные курсы, как насчет сохранения их в XML-файле в папке App_Data с записью, в которой указано, когда в последний раз были получены обменные курсы из медленного веб-сервиса, а затем при обновлении этого XML-файла он старше определенного интервала времени?