<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: The Real Performance Overhead of CSS Expressions</title>
	<atom:link href="http://blog.dynatrace.com/2010/02/16/the-real-performance-overhead-of-css-expressions/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.dynatrace.com/2010/02/16/the-real-performance-overhead-of-css-expressions/</link>
	<description>dynaTrace Blog on Performance, Scalabilty and Architecture - Java and .NET  Application Performance Management</description>
	<lastBuildDate>Thu, 09 Sep 2010 11:17:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Rupam</title>
		<link>http://blog.dynatrace.com/2010/02/16/the-real-performance-overhead-of-css-expressions/comment-page-1/#comment-15099</link>
		<dc:creator>Rupam</dc:creator>
		<pubDate>Wed, 05 May 2010 10:58:11 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dynatrace.com/?p=1548#comment-15099</guid>
		<description>This is really a very good piece of writing as it can clarify lots of doubt in the mind of css coders. Again I&#039;ve a doubt. setting of a width can be done javascript but I&#039;d like to see the coding for the following css expresion written for png images in ie6.

position:relative;
	behavior: expression((this.runtimeStyle.behavior=&quot;none&quot;)&amp;&amp;(this.pngSet?this.pngSet=true:(this.nodeName == &quot;IMG&quot; &amp;&amp; this.src.toLowerCase().indexOf(&#039;.png&#039;)&gt;-1?(this.runtimeStyle.backgroundImage = &quot;none&quot;,
	this.runtimeStyle.filter = &quot;progid:DXImageTransform.Microsoft.AlphaImageLoader(src=&#039;&quot; + this.src + &quot;&#039;, sizingMethod=&#039;image&#039;)&quot;,
	this.src = &quot;spacer.gif&quot;):(this.origBg = this.origBg? this.origBg :this.currentStyle.backgroundImage.toString().replace(&#039;url(&quot;&#039;,&#039;&#039;).replace(&#039;&quot;)&#039;,&#039;&#039;),
	this.runtimeStyle.filter = &quot;progid:DXImageTransform.Microsoft.AlphaImageLoader(src=&#039;&quot; + this.origBg + &quot;&#039;, sizingMethod=&#039;crop&#039;)&quot;,
	this.runtimeStyle.backgroundImage = &quot;none&quot;)),this.pngSet=true));</description>
		<content:encoded><![CDATA[<p>This is really a very good piece of writing as it can clarify lots of doubt in the mind of css coders. Again I&#8217;ve a doubt. setting of a width can be done javascript but I&#8217;d like to see the coding for the following css expresion written for png images in ie6.</p>
<p>position:relative;<br />
	behavior: expression((this.runtimeStyle.behavior=&#8221;none&#8221;)&amp;&amp;(this.pngSet?this.pngSet=true:(this.nodeName == &#8220;IMG&#8221; &amp;&amp; this.src.toLowerCase().indexOf(&#8216;.png&#8217;)&gt;-1?(this.runtimeStyle.backgroundImage = &#8220;none&#8221;,<br />
	this.runtimeStyle.filter = &#8220;progid:DXImageTransform.Microsoft.AlphaImageLoader(src=&#8217;&#8221; + this.src + &#8220;&#8216;, sizingMethod=&#8217;image&#8217;)&#8221;,<br />
	this.src = &#8220;spacer.gif&#8221;):(this.origBg = this.origBg? this.origBg :this.currentStyle.backgroundImage.toString().replace(&#8216;url(&#8220;&#8216;,&#8221;).replace(&#8216;&#8221;)&#8217;,&#8221;),<br />
	this.runtimeStyle.filter = &#8220;progid:DXImageTransform.Microsoft.AlphaImageLoader(src=&#8217;&#8221; + this.origBg + &#8220;&#8216;, sizingMethod=&#8217;crop&#8217;)&#8221;,<br />
	this.runtimeStyle.backgroundImage = &#8220;none&#8221;)),this.pngSet=true));</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: GreLI</title>
		<link>http://blog.dynatrace.com/2010/02/16/the-real-performance-overhead-of-css-expressions/comment-page-1/#comment-13355</link>
		<dc:creator>GreLI</dc:creator>
		<pubDate>Fri, 05 Mar 2010 16:33:47 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dynatrace.com/?p=1548#comment-13355</guid>
		<description>IE expressions are great to fix support for various things like hover (using exclusive onmouseenter/onmouseleave) or focus on bulk of elements. Mostly I use one time run expressions via redefining attribute by runtimeStyle and I noticed that expressions run many times when there are multiple selector. E.g. in .class1, .class2, .class3 { behavior: expression(…) } expressions executing constantly, but when I used only one selector expression was executed only one time per element (zoom is used for better combining):
.input_text {
	//zoom: expression(
		function(t){
			t.runtimeStyle.zoom = &#039;normal&#039;;
			t.attachEvent(&#039;onfocus&#039;,function() { t.className += &#039; focus&#039; });
			t.attachEvent(&#039;onblur&#039;,function() { t.className = t.className.replace(&#039; focus&#039;, &#039;&#039;) });
		}(this)
	);
}</description>
		<content:encoded><![CDATA[<p>IE expressions are great to fix support for various things like hover (using exclusive onmouseenter/onmouseleave) or focus on bulk of elements. Mostly I use one time run expressions via redefining attribute by runtimeStyle and I noticed that expressions run many times when there are multiple selector. E.g. in .class1, .class2, .class3 { behavior: expression(…) } expressions executing constantly, but when I used only one selector expression was executed only one time per element (zoom is used for better combining):<br />
.input_text {<br />
	//zoom: expression(<br />
		function(t){<br />
			t.runtimeStyle.zoom = &#8216;normal&#8217;;<br />
			t.attachEvent(&#8216;onfocus&#8217;,function() { t.className += &#8216; focus&#8217; });<br />
			t.attachEvent(&#8216;onblur&#8217;,function() { t.className = t.className.replace(&#8216; focus&#8217;, &#8221;) });<br />
		}(this)<br />
	);<br />
}</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Márton Sári</title>
		<link>http://blog.dynatrace.com/2010/02/16/the-real-performance-overhead-of-css-expressions/comment-page-1/#comment-12422</link>
		<dc:creator>Márton Sári</dc:creator>
		<pubDate>Fri, 19 Feb 2010 02:10:07 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dynatrace.com/?p=1548#comment-12422</guid>
		<description>As mentioned above by Arnab C, who linked to my article, one-time execution of CSS expressions is a solved issue.

The only thing I would add to this here is that therefore you can put virtually any initialization javascript code in CSS expressions without repeated execution.

Not as i could mention any valid case for putting complex code in expressions, but for CSS workarounds targeted for IE, i think, CSS expressions are a good place.</description>
		<content:encoded><![CDATA[<p>As mentioned above by Arnab C, who linked to my article, one-time execution of CSS expressions is a solved issue.</p>
<p>The only thing I would add to this here is that therefore you can put virtually any initialization javascript code in CSS expressions without repeated execution.</p>
<p>Not as i could mention any valid case for putting complex code in expressions, but for CSS workarounds targeted for IE, i think, CSS expressions are a good place.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andreas Grabner</title>
		<link>http://blog.dynatrace.com/2010/02/16/the-real-performance-overhead-of-css-expressions/comment-page-1/#comment-12367</link>
		<dc:creator>Andreas Grabner</dc:creator>
		<pubDate>Wed, 17 Feb 2010 22:02:11 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dynatrace.com/?p=1548#comment-12367</guid>
		<description>@Will &amp; @Boris
Thanks for your input - thats great!
I am sure all our readers appreciate the input.</description>
		<content:encoded><![CDATA[<p>@Will &#038; @Boris<br />
Thanks for your input &#8211; thats great!<br />
I am sure all our readers appreciate the input.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Boris Kuzmic</title>
		<link>http://blog.dynatrace.com/2010/02/16/the-real-performance-overhead-of-css-expressions/comment-page-1/#comment-12364</link>
		<dc:creator>Boris Kuzmic</dc:creator>
		<pubDate>Wed, 17 Feb 2010 20:12:29 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dynatrace.com/?p=1548#comment-12364</guid>
		<description>@Andreas
I&#039;ve tested in WinXP virtual machine (again, IE8 is default browser) using DynaTrace Ajax Edition and it is still evaluating css expressions.
Also, I&#039;ve played with removeExpression function but with no real effect.
On every: &quot;Rendering (Drawing)&quot; I see about 50 - 100 new &quot;Rendering (Evaluating CSS expressions)&quot;.

Maybe I&#039;ll use this technique only for IE6 (in some sort of generic stylesheet).</description>
		<content:encoded><![CDATA[<p>@Andreas<br />
I&#8217;ve tested in WinXP virtual machine (again, IE8 is default browser) using DynaTrace Ajax Edition and it is still evaluating css expressions.<br />
Also, I&#8217;ve played with removeExpression function but with no real effect.<br />
On every: &#8220;Rendering (Drawing)&#8221; I see about 50 &#8211; 100 new &#8220;Rendering (Evaluating CSS expressions)&#8221;.</p>
<p>Maybe I&#8217;ll use this technique only for IE6 (in some sort of generic stylesheet).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Will Peavy</title>
		<link>http://blog.dynatrace.com/2010/02/16/the-real-performance-overhead-of-css-expressions/comment-page-1/#comment-12354</link>
		<dc:creator>Will Peavy</dc:creator>
		<pubDate>Wed, 17 Feb 2010 16:05:24 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dynatrace.com/?p=1548#comment-12354</guid>
		<description>I found a nice sample at: http://perishablepress.com/press/2008/05/28/css-hackz-series-png-fix-for-internet-explorer/ 
.
.png {
	position:relative;
	behavior:expression((this.runtimeStyle.behavior=&quot;none&quot;)&amp;&amp;(this.pngSet?this.pngSet=true:(this.nodeName == &quot;IMG&quot; &amp;&amp; this.src.toLowerCase().indexOf(&#039;.png&#039;)&gt;-1?(this.runtimeStyle.backgroundImage = &quot;none&quot;,
	this.runtimeStyle.filter = &quot;progid:DXImageTransform.Microsoft.AlphaImageLoader(src=&#039;&quot; + this.src + &quot;&#039;, sizingMethod=&#039;image&#039;)&quot;,
	this.src = &quot;transparent.gif&quot;):(this.origBg = this.origBg? this.origBg :this.currentStyle.backgroundImage.toString().replace(&#039;url(&quot;&#039;,&#039;&#039;).replace(&#039;&quot;)&#039;,&#039;&#039;),
	this.runtimeStyle.filter = &quot;progid:DXImageTransform.Microsoft.AlphaImageLoader(src=&#039;&quot; + this.origBg + &quot;&#039;, sizingMethod=&#039;crop&#039;)&quot;,
	this.runtimeStyle.backgroundImage = &quot;none&quot;)),this.pngSet=true));
}</description>
		<content:encoded><![CDATA[<p>I found a nice sample at: <a href="http://perishablepress.com/press/2008/05/28/css-hackz-series-png-fix-for-internet-explorer/" rel="nofollow"></a><a href='http://perishablepress.com/press/2008/05/28/css-hackz-series-png-fix-for-internet-explorer/'>http://perishablepress.com/press/2008/05/28/css-hackz-series-png-fix-for-internet-explorer/</a><br />
.<br />
.png {<br />
	position:relative;<br />
	behavior:expression((this.runtimeStyle.behavior=&#8221;none&#8221;)&amp;&amp;(this.pngSet?this.pngSet=true:(this.nodeName == &#8220;IMG&#8221; &amp;&amp; this.src.toLowerCase().indexOf(&#8216;.png&#8217;)&gt;-1?(this.runtimeStyle.backgroundImage = &#8220;none&#8221;,<br />
	this.runtimeStyle.filter = &#8220;progid:DXImageTransform.Microsoft.AlphaImageLoader(src=&#8217;&#8221; + this.src + &#8220;&#8216;, sizingMethod=&#8217;image&#8217;)&#8221;,<br />
	this.src = &#8220;transparent.gif&#8221;):(this.origBg = this.origBg? this.origBg :this.currentStyle.backgroundImage.toString().replace(&#8216;url(&#8220;&#8216;,&#8221;).replace(&#8216;&#8221;)&#8217;,&#8221;),<br />
	this.runtimeStyle.filter = &#8220;progid:DXImageTransform.Microsoft.AlphaImageLoader(src=&#8217;&#8221; + this.origBg + &#8220;&#8216;, sizingMethod=&#8217;crop&#8217;)&#8221;,<br />
	this.runtimeStyle.backgroundImage = &#8220;none&#8221;)),this.pngSet=true));<br />
}</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Will Peavy</title>
		<link>http://blog.dynatrace.com/2010/02/16/the-real-performance-overhead-of-css-expressions/comment-page-1/#comment-12353</link>
		<dc:creator>Will Peavy</dc:creator>
		<pubDate>Wed, 17 Feb 2010 15:41:52 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dynatrace.com/?p=1548#comment-12353</guid>
		<description>@Andreas - I haven&#039;t setup a sample, but plan to.

@Robin - to clarify: alphaimageloader and opacity are commonly used in CSS expressions.</description>
		<content:encoded><![CDATA[<p>@Andreas &#8211; I haven&#8217;t setup a sample, but plan to.</p>
<p>@Robin &#8211; to clarify: alphaimageloader and opacity are commonly used in CSS expressions.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andreas Grabner</title>
		<link>http://blog.dynatrace.com/2010/02/16/the-real-performance-overhead-of-css-expressions/comment-page-1/#comment-12350</link>
		<dc:creator>Andreas Grabner</dc:creator>
		<pubDate>Wed, 17 Feb 2010 14:39:12 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dynatrace.com/?p=1548#comment-12350</guid>
		<description>@Boris: yep - i ran into the copy/paste error in the beginning :-)
I am not sure how detailed IETester is. dynaTrace AJAX actually hooks the Rendering Engine of IE - therefore we get more information than most of the other tools. I can totally see why the Rendering engine still is evaluating the expression - even though it does not call the JavaScript method anymore it still needs to iterate through all CSS Expressions internally.
Let me know your findings once you have time testing it on other systems
Thanks for your input!!</description>
		<content:encoded><![CDATA[<p>@Boris: yep &#8211; i ran into the copy/paste error in the beginning <img src='http://blog.dynatrace.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
I am not sure how detailed IETester is. dynaTrace AJAX actually hooks the Rendering Engine of IE &#8211; therefore we get more information than most of the other tools. I can totally see why the Rendering engine still is evaluating the expression &#8211; even though it does not call the JavaScript method anymore it still needs to iterate through all CSS Expressions internally.<br />
Let me know your findings once you have time testing it on other systems<br />
Thanks for your input!!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Boris Kuzmic</title>
		<link>http://blog.dynatrace.com/2010/02/16/the-real-performance-overhead-of-css-expressions/comment-page-1/#comment-12348</link>
		<dc:creator>Boris Kuzmic</dc:creator>
		<pubDate>Wed, 17 Feb 2010 14:29:32 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dynatrace.com/?p=1548#comment-12348</guid>
		<description>Also, did you correctly copy pasted code. Watch out for &quot;&quot;. 
Just a thought :-)</description>
		<content:encoded><![CDATA[<p>Also, did you correctly copy pasted code. Watch out for &#8220;&#8221;.<br />
Just a thought <img src='http://blog.dynatrace.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Boris Kuzmic</title>
		<link>http://blog.dynatrace.com/2010/02/16/the-real-performance-overhead-of-css-expressions/comment-page-1/#comment-12347</link>
		<dc:creator>Boris Kuzmic</dc:creator>
		<pubDate>Wed, 17 Feb 2010 14:26:25 +0000</pubDate>
		<guid isPermaLink="false">http://blog.dynatrace.com/?p=1548#comment-12347</guid>
		<description>I&#039;ve tested in only on Vista (IE 8 installed) using IETester v.0.4.2(both IE 6 and 7 instances) so I don&#039;t know how it works in native browser.

Also Dean Edwards has been using that style long time ago. I can&#039;t access his blog, so here is cached version of blog post:

http://74.125.77.132/search?q=cache:8d9ldygCGk8J:dean.edwards.name/weblog/2005/06/base64-sexy/+ie+base64+sexy+version

I will try later in virtual machine with WinXP.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve tested in only on Vista (IE 8 installed) using IETester v.0.4.2(both IE 6 and 7 instances) so I don&#8217;t know how it works in native browser.</p>
<p>Also Dean Edwards has been using that style long time ago. I can&#8217;t access his blog, so here is cached version of blog post:</p>
<p><a href="http://74.125.77.132/search?q=cache:8d9ldygCGk8J:dean.edwards.name/weblog/2005/06/base64-sexy/+ie+base64+sexy+version" rel="nofollow"></a><a href='http://74.125.77.132/search?q=cache:8d9ldygCGk8J:dean.edwards.name/weblog/2005/06/base64-sexy/+ie+base64+sexy+version'>http://74.125.77.132/search?q=cache:8d9ldygCGk8J:dean.edwards.name/weblog/2005/06/base64-sexy/+ie+base64+sexy+version</a></p>
<p>I will try later in virtual machine with WinXP.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
