A: 

The browser makes a GET request for each resource included in the Page, including js files, images, css files...

Marwan Aouida
doesn't explain the multiple requests to the aspx tho.
David Hedlund
OK, but I see those as separate requests in Firebug also. Let's say I've got 5 lines listed in Firebug, three of them are for the .aspx page, one for the .css file, and one for the Telerik.WebResource.axd
Nick DeVore
+5  A: 

EDIT: Here is the source of your two extra page loads:

<script type="text/javascript"
        src='<%# ResolveUrl("~/Common/jQuery/jquery-1.3.2.min.js") %>'> 
</script>

<script type="text/javascript"
        src='<%# ResolveUrl("~/Common/jQuery/jquery-ui-1.7.1.custom.min.js") %>'> 
</script>

As you can see in the rendered version the src attribute is empty, causing it to load the page two extra times.

<script type="text/javascript" src=''></script>
<script type="text/javascript" src=''></script>

You can probably fix this by using the runat server tag and having it resolve the urls automatically.

<script type="text/javascript"
        src="~/Common/jQuery/jquery-1.3.2.min.js"
        runat="server"
        ID="jQuery"> </script>
<script type="text/javascript"
        src="~/Common/jQuery/jquery-ui-1.7.1.custom.min.js"
        runat="server"
        ID="jQueryUI"> </script>

(or change <%# %> to <%= %> -- since you need to have the version that outputs a string instead of the binding syntax).

Original answer removed since it was not related to the actual problem.

tvanfosson
Each hit takes about the same amount of time to return. Is this expected? Is this my only way of doing this? Can I optimize this somehow?
Nick DeVore
Can you repost your screen shot with the requests expanded so we can see what data is actually in the request?
tvanfosson
Second screen shot added. Is that what you're after?
Nick DeVore
Actually, we need to see the second and third requests. It would also be better if you were already logged in and simply refreshed the page so we don't get the login/redirect clutter.
tvanfosson
I've added all three request headers and refreshed after being logged in already.
Nick DeVore
Sorry -- didn't particularly help after all. I'm thinking now that you have some resource with an empty source attribute. Is there anyway to make the generated source available -- posting in your question is probably too much. Can you open up a public site where we can see the page?
tvanfosson
I've created some pdf versions of the files I thought important. Let me know if there is something else that would help you help me. Thanks so much!
Nick DeVore
Updated my answer based on your extra data. The error is in the javascript includes for jQuery.
tvanfosson
I apologize for the formatting -- no matter what I do it seems to put both the original script includes on the same line.
tvanfosson
Thank you very much for all your work on this one! Greatly appreciated!
Nick DeVore
A: 

It could be lots of things - the important part of the request is what it's GETing.

Generally you're going to see more than one request for an ASPX page as it loads the javascript libraries to perform validation and postbacks. Controls can also have javascript embedded as resources, which in turn create other GET requests, usually for WebResource.axd and ScriptResource.axd.

blowdart
Is this good, bad, or just how the world spins? Should my goal be to get my requests down to one? Is it ok to leave it at three? It seems like the more requests to the aspx pages, the longer the overall experience will be for the user.
Nick DeVore
I honestly wouldn't worry. If you want that level of control you're simply not going to be able to get it from WebForms - you'd be better off looking at ASP.NET MVC. As soon as you start using web controls in web forms you can't control requests any more.
blowdart
+1  A: 

The browser should normally hit the server just once, and all the time it takes to query the database and whatnot should be confined within that request. If you're playing around with ajax controls, they're likely to query the server more times for new data. You can use firebug to inspect the requests and responses, and see what they contain.

A common cause for the aspx being requested several times is having IMG tags rendered without any SRC attribute. This will default to querying the same page for the image source. If this is the case for you, then you could check the request headers in firebug, to see if it expects an image.

You could also go to the console and type document.images to get a list of all the images. The ones that aren't visible on the page will be shown slightly faded. Inspect those for blank SRC's.

David Hedlund
A: 

If you have security enabled, that could be the challenge and response requests - first a 401 then a 200. What are the response codes that you are getting?

Otávio Décio
+2  A: 

It's unlikely that those are AJAX requests, as the response length is the same on each request.

I'm also ruling out the bug with empty src attribute of img elements, as this only causes one reload of the page, not two.

There is a know bug with Telerik RadEditor that might cause such condition, but you don't mention it in the list of used controls. Here are more details about it:

http://www.telerik.com/community/forums/aspnet-ajax/editor/radeditor-forces-page-load-twice.aspx

You might also want to comment out the Telerik controls on the page to see if that helps.

Tsvetomir Tsonev
@Tsvetomir -- I agree (after seeing the screenshot) that it's unlikely that it an Ajax issue. I'd really like to see that data that's being sent with the request.
tvanfosson