Server Side Comments or how to automatically remove HTML/JavaScript comments from websites
One difference between good and bad code are comments. Good programmers tend to comment their code to make it readable for themselves (the next day ;-) ) or for other programmers (*).
There are situations though where one doesn't want comments to show up - like in an ASP.NET Web Application. Imagine the following simple app.
<head runat="server"> <title>Untitled Page</title> <script type="text/javascript"> // This function does something // incredible :-) function DoSomethingIncredible() { alert('Hallo'); } </script> </head> <body onload="DoSomethingIncredible()"> <form id="form1" runat="server"> <div>
<asp:Label ID="Label1" runat="server" Text="Label" /><br /> <!-- Don't need this currently but am not sure if I need it in the future... You get my point ;-) <asp:Label ID="Label2" runat="server" Text="Label" /> --> </div> </form> </body> |
Unfortunately the comments will be send down to the client together with the remaining markup.
<head><title> Untitled Page</title> <script type="text/javascript"> // This function does something // incredible :-) function DoSomethingIncredible() { alert('Hallo'); } </script></head><body onload="DoSomethingIncredible()"> <form name="form1" method="post" action="Default.aspx" id="form1"><div><input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJOTAxMzgwODE5ZGQvR1v+z54Nn929OgLm6cscsg/+iQ==" /></div> <div> <span id="Label1">Label</span><br /> <!-- Don't need this currently but am not sure if I need it in the future... You get my point ;-) <span id="Label2">Label</span> --> </div> </form></body> |
Fortunately ASP.NET supports a little known feature called “server-side comments” (<%-- --%>) which removes comments on the server. Check out the enhanced code...
<head runat="server"> <title>Untitled Page</title> <script type="text/javascript"> <%-- // This function does something // incredible :-) --%> function DoSomethingIncredible() { alert('Hallo'); } </script> </head> <body onload="DoSomethingIncredible()"> <form id="form1" runat="server"> <div>
<asp:Label ID="Label1" runat="server" Text="Label" /><br /> <%-- Don't need this currently but am not sure if I need it in the future... You get my point ;-) <asp:Label ID="Label2" runat="server" Text="Label" /> --%> </div> </form> </body> |
...together with the new output (behold the missing comments...). Pretty sweet, eh?
<head><title> Untitled Page</title> <script type="text/javascript"> function DoSomethingIncredible() { alert('Hallo'); } </script></head><body onload="DoSomethingIncredible()"> <form name="form1" method="post" action="Default.aspx" id="form1"><div><input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJODExMDE5NzY5ZGTf9XGSwEVcluDmIxIb9pffNJ3tXg==" /></div> <div> <span id="Label1">Label</span><br /> </div> </form></body> |
Enjoy!
Daniel
* O.K. Fair enough. This statement only holds true for the somewhat good programmers. The really 1337 programmers naturally don't need no 1@m3 comments ;-)
Comments
Anonymous
January 14, 2008
PingBack from http://geeklectures.info/2008/01/14/server-side-comments-or-how-to-automatically-remove-htmljavascript-comments-from-websites/Anonymous
January 15, 2008
Server Side Comments or how to automatically remove HTML/JavaScript comments from websites ...