У меня есть страница aspx с тремя кнопками ввода.
Первая кнопка, использующая javascript / ajax, запускает вызов IHttpAsyncHandler.
Обработчик вызывает веб-сервис на другом сервере (который генерирует отчет и возвращает путь к файлу отчета). В обратном вызове ajax XmlHttp.responseText возвращает правильный путь, и вызов window.open (путь) открывает отчет, без проблем.
Две другие кнопки открывают новые окна для других страниц aspx на текущем сайте.
Проблема в том, что после нажатия первой кнопки, нажатие двух других кнопок не дает мне страницы aspx, пока не отобразится отчет. Пустые окна всплывают, но ничего не отображается, пока отчет не будет завершен.
Что вызывает это время зависания? Я думал, что вызов отчета с использованием ajax и обработчика Async не помешает появлению других страниц aspx.
Другие попытки:
1. создание reportGenCompletedEventHandler
в главном aspx и вызов службы с помощью reportGenAsync(...)
2. звонит (в основном aspx)
AddOnPreRenderCompleteAsync(New BeginEventHandler(...),New EndEventHandler(...)
3. звонит (в основном aspx)
Page.RegisterAsyncTask(New PageAsyncTask(...))
Page.ExecuteRegisteredAsyncTasks()
4. То же, что и выше, создание отдельного AsyncHandler, но также создание отдельного потока.
Очевидно, я что-то здесь упускаю. Можно ли вызвать веб-сервис в другом месте и при этом иметь полный контроль над вашим приложением?
Спасибо