2010-11-03 3 views
0

У меня есть страница, которая благодаря jQuery автоматически нажимает кнопку «Запустить отчет» при определенных условиях. Поэтому, когда пользователь переходит на страницу через меню, они ожидают х секунд и результаты возвращаются. Это отлично работает ...ASP.Net - Бедный Майн Asynch «Пожалуйста, подождите ...» Анимация

Однако я хочу добавить анимацию, потому что некоторые пользователи не знают, что что-то происходит, и я также хотел бы просто показать счетчик. Приложение еще не «Ajaxified» и, возможно, никогда не будет. Поэтому я подумал о том, как это сделать.

У меня есть div, в котором есть текст и изображение. Этот div имеет класс на том, что просто делает display: none; Тот же самый jQuery, который нажимает кнопку, у меня также есть его, используя метод .toggleClass, чтобы теперь показать div.

Это работает отлично И отчет запускается и, в конце концов, возвращает данные, и поскольку в этот момент страница обновляется, div снова скрывается, и все правильно в мире.

Моя проблема заключается в том, что изображение показывает, но не оживляет. Я попытался поставить его перед щелчком, надеясь, что это произойдет и начнется. Тогда появится щелчок, даже чтобы начать ожидание.

Есть ли что-нибудь, что я могу сделать, чтобы заставить GIF анимировать?

ответ

1

Вы используете метод jQuery ajax для запроса отчета? Если да, то существует функция, встроенная в стандартный метод ajax.

$.ajax({ 
    url: "/webservices/taskHelper.asmx/ArchiveTask", 
    data: '{taskId: 5}', 
    beforeSend: function() { 
     $("#spinner").show(); 
    }, 
    error: deft.ajaxError, 
    success: function (data) { 
     $("#spinner").hide(); 
    } 
}); 

Функция «beforeSend» будет выполняться при щелчке на ссылке и продолжать работать, пока ответ не будет получен от сервера. Я использую функцию beforeSend для отображения моего скрытого div, содержащего анимированный gif. Работает отлично. jQuery ajax docs

+0

К сожалению нет, я не могу использовать ваш пример. В основном я вызываю метод DataBind ObjectDataSource для «получения» или «регенерации» данных. Внутри своего события _Selecting я заполняю значения, необходимые для запуска запроса. Я попытался назвать его WebMethod и теоретически мог бы работать, но WebMethod должен быть Static, и именно там он разваливается. Я попытался просто включить счетчик, как показано выше, а затем через javascirpt нажмите кнопку. Я получаю тот же результат, изображение отображается, но не вращается. – Grandizer

1

Отправка формы останавливает действие всей страницы, включая анимацию GIF.

Путь вокруг этого заключается в том, чтобы отправить форму на скрытый iframe. Конечно, вам понадобится iframe, чтобы «просыпаться» на главной странице и показывать ее содержимое там, где появляются результаты.

+0

есть место сверху. Поместите анимационную графику в скрытый div, и по нажатию кнопки javascript «покажет» ранее скрытый div – ewitkows

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