fpz
fpz

Reputation: 31

Execute server side code without full postback

When a user clicks a button I need to create a .bmp file on the server. After the .bmp file is created I will load it into the html page. Would Ajax be the best way to accomplish this?

Upvotes: 3

Views: 2059

Answers (6)

Kartones
Kartones

Reputation: 40

One side-note. Do you really need to output a BMP file to display it in the HTML?

BMPs are quite heavy and uncompressed, if you must store it in that format serer-side, maybe you can also save a JPG "thumbnail" and output that. It will be much faster, whenever you decide to use AJAX or normal postbacks.

As everyone else said, AJAX is the best approach because response will be much smaller (just the contents) than returning the full page.

Also for debugging, apart from Fiddler I like to use Firefox with Firebug, it is an excellent web development tool.

Upvotes: 1

John K
John K

Reputation: 28917

Yes AJAX is the best way. It can be done through ASP.NET's AJAX mechanisms, jQuery itself or another of your choice.

If you're just generating an image for return to the browser then instead of invoking an ASP.NET page (.aspx) lifecycle for it, use the lighter HTTP handler (.ashx). Here's an example on the server-side.

(The HTTP Handlers work by inheriting your class from something like DefaultHttpHandler or implementing IHttpHandler instead of the Page class.)

Additional Samples and notes about AJAX communication:

To debug this kind of stuff it's very useful to have an HTTP Monitoring utility like Fiddler to watch the out-of-band HTTP requests and responses.

Upvotes: 4

TheGeekYouNeed
TheGeekYouNeed

Reputation: 7539

You don't have to use Ajax. You can set your page to AutoEventWireUp="false" and handle all events by hand. Circumvent the Page_Load event on the Button click and voila.

Upvotes: 0

Oscar Cabrero
Oscar Cabrero

Reputation: 4169

if you want to provide an useful feature on this then you should go Ajax if not then a postback is OK

Upvotes: 0

Tim Coker
Tim Coker

Reputation: 6524

Short answer: Yes.

ajax would be the best way to do this. Look at the jquery docs to start with. Its not really that simple of a thing to do and doesn't lend itself to posting a snippet to illustrate. You're going to have to get cozy with several possibly new concepts here.

http://docs.jquery.com/Main_Page

Here's the direct link to jQuery's ajax documentation.

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

If you've never done jQuery, its kinda weird, but definitely worth taking the time to get used to.

Upvotes: 2

earthling
earthling

Reputation: 5264

if you don't want a full post back, yes.

Upvotes: 0

Related Questions