I usually create usercontrol which is referring javascript file/block. For example, I have a cascading Nation/City selection which is based on AJAX in my Register.ascx(a usercontrol), certainly I need add the javascript file into page. I have 3 ways at present:
1.Writing <Script> element in .ascx file directly, but it will bring nonstandard HTML structure due to many <Script> elements would appear in <Body>.
2.Writing <Script> element in aspx page which will use the usercontrol, but the father(aspx) rely on child(ascx), it’s listening too bad.
3.Using ScriptManager or HtmlGenericControl to register file/block in head, but I’m worrying about performance of them, and it’s a bit weird that I bring javascript to c# file.
Well I don’t feel there is really anything wrong with having your scripts inside the body tag. In fact placing scripts at the bottom of the page is fairly common practice.
However if that concerns you, you may try putting all your scripts into a separate .js file and then call those functions from your control.
As far as the script manage, your probably right… I am sure that comes with some overhead.