Выполнить код на стороне сервера без полной обратной передачи

Когда пользователь нажимает кнопку, мне нужно создать на сервере файл .bmp. После создания файла .bmp я загружу его на страницу html. Будет ли Ajax лучшим способом добиться этого?


person fpz    schedule 08.06.2010    source источник


Ответы (6)


Да, AJAX - лучший способ. Это можно сделать с помощью механизмов AJAX ASP.NET, сам jQuery или другой на ваш выбор.

Если вы просто создаете изображение для возврата в браузер, то вместо того, чтобы вызывать для него жизненный цикл страницы ASP.NET (.aspx), используйте зажигалку обработчик HTTP (.ashx). Вот пример на стороне сервера.

(Обработчики HTTP работают, наследуя ваш класс от чего-то вроде DefaultHttpHandler или реализуя IHttpHandler вместо класса Page.)

Дополнительные образцы и примечания о связи AJAX:

Для отладки такого рода вещей очень полезно иметь утилиту HTTP-мониторинга, например Fiddler, чтобы следить за внешними HTTP-запросами и ответами.

person John K    schedule 08.06.2010

Краткий ответ: да.

Лучше всего это сделать с помощью ajax. Для начала посмотрите документацию jquery. На самом деле это не так просто и не поддается размещению фрагмента для иллюстрации. Вам придется освоиться с несколькими, возможно, новыми концепциями здесь.

http://docs.jquery.com/Main_Page

Вот прямая ссылка на документацию jQuery ajax.

http://api.jquery.com/category/ajax/

Если вы никогда не работали с jQuery, это немного странно, но определенно стоит потратить время, чтобы привыкнуть.

person Tim Coker    schedule 08.06.2010
comment
«Если вы никогда не использовали jQuery, это немного странно» - только если вы не знакомы ни с CSS, ни с JavaScript. - person STW; 09.06.2010

Одно примечание. Вам действительно нужно вывести файл BMP, чтобы отобразить его в HTML?

BMP довольно тяжелые и несжатые, если вы должны хранить их в этом формате на стороне сервера, возможно, вы также можете сохранить "эскиз" JPG и вывести его. Это будет намного быстрее, если вы решите использовать AJAX или обычные обратные передачи.

Как все говорили, AJAX - лучший подход, потому что ответ будет намного меньше (только содержимое), чем возврат всей страницы.

Также для отладки, помимо Fiddler, мне нравится использовать Firefox с Firebug, это отличная веб-разработка. инструмент.

person Kartones    schedule 12.03.2011

если вы не хотите возвращать полный пост - да.

person earthling    schedule 08.06.2010

если вы хотите предоставить полезную функцию для этого, вам следует перейти на Ajax, если нет, тогда обратная передача в порядке

person Oscar Cabrero    schedule 08.06.2010

Вам не обязательно использовать Ajax. Вы можете установить для своей страницы AutoEventWireUp = "false" и обрабатывать все события вручную. Обходите событие Page_Load при нажатии кнопки и вуаля.

person TheGeekYouNeed    schedule 08.06.2010