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 πŸ˜‰

Skip to main content