Когда пользователь нажимает кнопку, мне нужно создать на сервере файл .bmp. После создания файла .bmp я загружу его на страницу html. Будет ли Ajax лучшим способом добиться этого?
Выполнить код на стороне сервера без полной обратной передачи
Ответы (6)
Да, AJAX - лучший способ. Это можно сделать с помощью механизмов AJAX ASP.NET, сам jQuery или другой на ваш выбор.
Если вы просто создаете изображение для возврата в браузер, то вместо того, чтобы вызывать для него жизненный цикл страницы ASP.NET (.aspx), используйте зажигалку обработчик HTTP (.ashx). Вот пример на стороне сервера.
(Обработчики HTTP работают, наследуя ваш класс от чего-то вроде DefaultHttpHandler или реализуя IHttpHandler вместо класса Page.)
Дополнительные образцы и примечания о связи AJAX:
- Если вы выбрали страницу ASPX для создания изображения, используйте атрибуты WebMethod на методы страницы для облегчения взаимодействия с ними AJAX; или явный .ASMX Web-сервис, чтобы сделать то же самое с помощью WebMethod em > атрибут.
или, - Обработчики ASP.NET AJAX и HTTP
- Вы можете получить много интересных моментов из Stackoverflow, например, вы не нужна страница ASPX или ASHX, только необработанный класс, наследующий IHttpHandler и http://msdn.microsoft.com/en-us/library/aa903367(VS.71).aspx, чтобы заставить его работать.
Для отладки такого рода вещей очень полезно иметь утилиту HTTP-мониторинга, например Fiddler, чтобы следить за внешними HTTP-запросами и ответами.
Краткий ответ: да.
Лучше всего это сделать с помощью ajax. Для начала посмотрите документацию jquery. На самом деле это не так просто и не поддается размещению фрагмента для иллюстрации. Вам придется освоиться с несколькими, возможно, новыми концепциями здесь.
http://docs.jquery.com/Main_Page
Вот прямая ссылка на документацию jQuery ajax.
http://api.jquery.com/category/ajax/
Если вы никогда не работали с jQuery, это немного странно, но определенно стоит потратить время, чтобы привыкнуть.
Одно примечание. Вам действительно нужно вывести файл BMP, чтобы отобразить его в HTML?
BMP довольно тяжелые и несжатые, если вы должны хранить их в этом формате на стороне сервера, возможно, вы также можете сохранить "эскиз" JPG и вывести его. Это будет намного быстрее, если вы решите использовать AJAX или обычные обратные передачи.
Как все говорили, AJAX - лучший подход, потому что ответ будет намного меньше (только содержимое), чем возврат всей страницы.
Также для отладки, помимо Fiddler, мне нравится использовать Firefox с Firebug, это отличная веб-разработка. инструмент.
если вы не хотите возвращать полный пост - да.
если вы хотите предоставить полезную функцию для этого, вам следует перейти на Ajax, если нет, тогда обратная передача в порядке
Вам не обязательно использовать Ajax. Вы можете установить для своей страницы AutoEventWireUp = "false" и обрабатывать все события вручную. Обходите событие Page_Load при нажатии кнопки и вуаля.