2014-02-14 4 views
2

У меня есть страница с 6 диаграммами. Когда пользователь открывает страницу в первый раз, я хочу загрузить только макет страницы, а затем отдельно каждую диаграмму с помощью ajax, потому что для каждой диаграммы на стороне сервера требуется несколько секунд. Можно ли это сделать с помощью синтаксиса бритвы, используя @ Ajax.BeginForm, или лучше с JQuery?ASP.NET MVC создает ajax-вызовы после загрузки страницы?

ответ

1

Я бы сказал, что было бы лучше использовать jquery. Причина этого в том, что Ajax.BeginForm выведет форму, и это будет иметь смысл, если вы ожидаете, что она будет использоваться для отправки данных обратно на сервер.

Если все, что вам нужно сделать, это загрузить диаграммы асинхронно, вероятно, лучше использовать запрос, например:

$(function(){ 
$('#divForChart1').load('@Url.Action("ActionThatGeneratesChart1", "ChartController"); 
$('#divForChart2').load('@Url.Action("ActionThatGeneratesChart2", "ChartController"); 
... 
}); 
+0

Что JQuery событие было бы, я должен использовать, чтобы стрелять вызов Ajax к серверу, когда страница загружен? $ .ready, вероятно, не подходит, так как он запускает каждую загруженную страницу, если она загружена в первый раз или загружена из-за повторного вызова. –

+0

В MVC нет обратной обратной связи (вы используете MVC4 правильно?). Поэтому, если у вас действительно есть что-то на вашей странице, которое отправляется обратно в себя, вам нужно будет использовать готовое событие, так как вся страница нуждается в обновлении, включая диаграммы. – Rui

+0

Да, я использую MVC 4. Если я правильно понял, готовое событие срабатывает только при первой загрузке страницы и не срабатывает при завершении вызова ajax? –

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