<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Paulo Morgado : HTML</title><link>http://msmvps.com/blogs/paulomorgado/archive/tags/HTML/default.aspx</link><description>Tags: HTML</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>More On ASP.NET Validators And Validation Summary Rendering of Properties</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/06/23/more-on-asp-net-validators-and-validation-summary-rendering-of-properties.aspx</link><pubDate>Mon, 23 Jun 2008 00:47:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1636848</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1636848</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1636848</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/06/23/more-on-asp-net-validators-and-validation-summary-rendering-of-properties.aspx#comments</comments><description>&lt;p&gt;On previous posts [&lt;a title="The Cause Of ASP.NET Validators And Validation Summary Slowness" href="http://msmvps.com/blogs/paulomorgado/archive/2008/05/12/the-cause-of-asp-net-validators-and-validation-summary-slowness.aspx" target="_blank"&gt;^&lt;/a&gt;][&lt;a title="Rendering ASP.NET Validators And Validation Summary Property As HTML Attributes" href="http://msmvps.com/blogs/paulomorgado/archive/2008/05/13/rendering-asp-net-validators-and-validation-summary-property-as-html-attributes.aspx" target="_blank"&gt;^&lt;/a&gt;] I mentioned the size of &lt;a title="ASP.NET Developer Center" href="http://msdn.microsoft.com/asp.net/" target="_blank"&gt;ASP.NET&lt;/a&gt; validators and validation summary rendering and the fact that &lt;a title="ClentScriptManager.RegisterExpandoAttribute Method" href="http://msdn.microsoft.com/library/system.web.ui.clientscriptmanager.registerexpandoattribute.aspx" target="_blank"&gt;expando attributes&lt;/a&gt; are being used to add properties. &lt;a title="Guru Stop - Mohamed Meligy blogging the interests of an Egyptian .NET software engineer (Communities, Architecture, Patterns, etc..)" href="http://weblogs.asp.net/meligy/" target="_blank"&gt;Mohamed&lt;/a&gt; also &lt;a title="Prevent ASP.NET Validators from Massively Increasing Page Size" href="http://weblogs.asp.net/meligy/archive/2008/06/17/prevent-asp-net-validators-from-massively-increasing-page-size.aspx" target="_blank"&gt;mentions&lt;/a&gt; this issue.&lt;/p&gt;
&lt;p&gt;Besides the fact that custom attributes aren&amp;#39;t &lt;a title="XHTML2 Working Group Home Page" href="http://www.w3.org/MarkUp/" target="_blank"&gt;XHTML&lt;/a&gt; conformant, &lt;a title="Firefox web browser" href="http://www.firefox.com/" target="_blank"&gt;Firefox&lt;/a&gt; differs from &lt;a title="Internet Explorer" href="http://www.microsoft.com/ie" target="_blank"&gt;Internet Explorer&lt;/a&gt; in the way it handles these attributes.&lt;/p&gt;
&lt;p&gt;On &lt;a title="Internet Explorer" href="http://www.microsoft.com/ie" target="_blank"&gt;Internet Explorer&lt;/a&gt;, these attributes are converted in string properties of the HTML element. On &lt;a title="Firefox web browser" href="http://www.firefox.com/" target="_blank"&gt;Firefox&lt;/a&gt;, on the other hand, these attributes are only accessible through the &lt;strong&gt;attributes&lt;/strong&gt; collection.&lt;/p&gt;
&lt;p&gt;I wonder why I don’t like client-side JavaScript development.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1636848" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Web/default.aspx">Web</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/InternetExplorer/default.aspx">InternetExplorer</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/FireFox/default.aspx">FireFox</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/HTML/default.aspx">HTML</category></item><item><title>Rendering ASP.NET Validators And Validation Summary Property As HTML Attributes</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/05/13/rendering-asp-net-validators-and-validation-summary-property-as-html-attributes.aspx</link><pubDate>Tue, 13 May 2008 00:34:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1621419</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1621419</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1621419</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/05/13/rendering-asp-net-validators-and-validation-summary-property-as-html-attributes.aspx#comments</comments><description>&lt;p&gt;Yesterday I blogged about &lt;a class="" title="The Cause Of ASP.NET Validators And Validation Summary Slowness" href="http://weblogs.asp.net/paulomorgado/archive/2008/05/12/the-cause-of-asp-net-validators-and-validation-summary-slowness.aspx" target="_blank"&gt;the cause of ASP.NET validators and validation summary slowness&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;At that point I wasn&amp;#39;t aware of the existence of the &lt;a title="xhtmlConformance Element (ASP.NET Settings Schema)" href="http://msdn.microsoft.com/library/ms228268.aspx" target="_blank"&gt;XHTML conformance configuration&lt;/a&gt; (thanks &lt;a title="Nuno Faro Gomes" href="http://nunogomes.net/" target="_blank"&gt;Nuno&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;With the XHTML conformance configuration set to &lt;strong&gt;Legacy&lt;/strong&gt;, the rendering of controls works like it worked in ASP.NET 1.1.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1621419" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Web/default.aspx">Web</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Tools/default.aspx">Tools</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/HTML/default.aspx">HTML</category></item><item><title>The Cause Of ASP.NET Validators And Validation Summary Slowness</title><link>http://msmvps.com/blogs/paulomorgado/archive/2008/05/12/the-cause-of-asp-net-validators-and-validation-summary-slowness.aspx</link><pubDate>Sun, 11 May 2008 23:17:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1620018</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1620018</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1620018</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2008/05/12/the-cause-of-asp-net-validators-and-validation-summary-slowness.aspx#comments</comments><description>&lt;p align="justify"&gt;When building &lt;a title="ASP.NET Developer Center" href="http://msdn.microsoft.com/asp.net/" target="_blank"&gt;ASP.NET&lt;/a&gt; pages, if you use too many validators and validation summaries your pages can become very slow. Have you ever wondered why?&lt;/p&gt;
&lt;p align="justify"&gt;Lets build a simple page web page with a few validators. Something like this:&lt;/p&gt;
&lt;p&gt;&lt;img style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;BORDER-BOTTOM:0px;" height="212" alt="Web page with validation" src="http://weblogs.asp.net/blogs/paulomorgado/WindowsLiveWriter/VisualStudi.51SP1BetaAvailableToDownload_14B70/WebPageWithValidators_thumb_2.png" width="217" border="0" /&gt; &lt;/p&gt;
&lt;p&gt;The page is composed of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2 &lt;a title="TextBox Class" href="http://msdn.microsoft.com/library/system.web.ui.webcontrols.textbox.aspx" target="_blank"&gt;TextBox&lt;/a&gt;es &lt;/li&gt;
&lt;li&gt;1 &lt;a title="RequiredFieldValidator Class" href="http://msdn.microsoft.com/library/system.web.ui.webcontrols.RequiredFieldValidator.aspx" target="_blank"&gt;RequiredFieldValidator&lt;/a&gt; for each &lt;strong&gt;TextBox&lt;/strong&gt; &lt;/li&gt;
&lt;li&gt;1 &lt;a title="RangeValidator Class" href="http://msdn.microsoft.com/library/system.web.ui.webcontrols.RangeValidator.aspx" target="_blank"&gt;RangeValidator&lt;/a&gt; for each &lt;strong&gt;TextBox&lt;/strong&gt; &lt;/li&gt;
&lt;li&gt;1 &lt;a title="CompareValidator Class" href="http://msdn.microsoft.com/library/system.web.ui.webcontrols.CompareValidator.aspx" target="_blank"&gt;CompareValidator&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;1 &lt;a title="ValidationSummary Class" href="http://msdn.microsoft.com/library/system.web.ui.webcontrols.validationsummary.aspx" target="_blank"&gt;ValidationSummary&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;1 &lt;a href="http://msdn.microsoft.com/library/system.web.ui.webcontrols" target="_blank"&gt;Button&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;
&lt;p align="justify"&gt;ASP.NET renders the &lt;strong&gt;ValidationSummary&lt;/strong&gt; as a &lt;strong&gt;DIV&lt;/strong&gt; and each validator as a &lt;strong&gt;SPAN&lt;/strong&gt; and uses &lt;a title="ClientScriptManager.RegisterExpandoAttribute Method" href="http://msdn.microsoft.com/library/system.web.ui.clientscriptmanager.registerexpandoattribute.aspx" target="_blank"&gt;expando attributes&lt;/a&gt; to add properties to those elements.&lt;/p&gt;
&lt;p align="justify"&gt;&lt;a title="ClientScriptManager.RegisterExpandoAttribute Method (String, String, String)" href="http://msdn.microsoft.com/library/ms153122.aspx" target="_blank"&gt;According to the documentation&lt;/a&gt;, expando attributes are set dynamically from JavaScript to preserve &lt;a title="XHTML2 Working Group Home Page" href="http://www.w3.org/MarkUp/" target="_blank"&gt;XHTML&lt;/a&gt; compatibility for the rendered control&amp;#39;s markup.&lt;/p&gt;
&lt;p align="justify"&gt;The problem is that all that JavaScript makes the HTML document larger and slower to execute than if the properties were rendered in HTML as attributes of the elements.&lt;/p&gt;
&lt;p align="justify"&gt;For such a small page, the difference in size approaches 2k bytes. If you add a few dozen validators to he page, the slowness is noticeable.&lt;/p&gt;
&lt;p align="justify"&gt;I&amp;#39;m all in favor of strict standards and standards compliance, but in this case, I wish &lt;strong&gt;XHTML&lt;/strong&gt; would allow arbitrary attributes.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1620018" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Web/default.aspx">Web</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Tools/default.aspx">Tools</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/AJAX/default.aspx">AJAX</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/HTML/default.aspx">HTML</category></item></channel></rss>