<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>blog.formatvorlage &#187; JavaScript</title>
	<atom:link href="http://blog.formatvorlage.de/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.formatvorlage.de</link>
	<description>das web, ich und all das andere zeug</description>
	<lastBuildDate>Sun, 19 Dec 2010 17:05:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.3</generator>
		<item>
		<title>Hack: Unbekannte Elemente im IE stylen</title>
		<link>http://blog.formatvorlage.de/2008/02/13/hack-unbekannte-elemente-im-ie-stylen/</link>
		<comments>http://blog.formatvorlage.de/2008/02/13/hack-unbekannte-elemente-im-ie-stylen/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 13:22:15 +0000</pubDate>
		<dc:creator>Claus</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Hack]]></category>
		<category><![CDATA[IE]]></category>

		<guid isPermaLink="false">http://blog.formatvorlage.de/2008/02/13/hack-unbekannte-elemente-im-ie-stylen/</guid>
		<description><![CDATA[Gerade beim Aufräumen auf dem Schreibtisch einen Clip gefunden, den ich vor ein paar Wochen in einem Blog gefunden habe (ich glaube bei Simon Willison) und hiermit zum Freudenspender-Tip des Monats erkläre: &#8220;If you want CSS rules to apply to unknown elements in IE, you just have to do document.createElement(elementName). This somehow lets the CSS [...]]]></description>
			<content:encoded><![CDATA[<p>Gerade beim Aufräumen auf dem Schreibtisch einen Clip gefunden, den ich vor ein paar Wochen in einem Blog gefunden habe (ich glaube bei <a href="http://simonwillison.net/">Simon Willison</a>) und hiermit zum Freudenspender-Tip des Monats erkläre:</p>
<p>&#8220;If you want CSS rules to apply to unknown elements in IE, you just have to do document.createElement(elementName). This somehow lets the CSS engine know that elements with that name exist.&#8221;</p>
<p>- Sjoerd Visscher</p>
<p>Genau dieses Problem hat mich beim IE vor ein paar Jahren beim Versuch, eigenes Markup für ein Projekt zu entwickeln, so dermaßen angekotzt, dass ich es dann anders gelöst habe. Schlechter als geplant. Danke <a href="http://www.google.com/url?sa=t&amp;ct=res&amp;cd=1&amp;url=http%3A%2F%2Fw3future.com%2Fweblog%2F&amp;ei=8e2yR--jNKTGnAOc5fG5BQ&amp;usg=AFQjCNGgquTUh0uf3rbWMW6CK7mfTmoTYg&amp;sig2=7pWgq-SbKCDcqvSz0FyeNw">Sjoerd</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.formatvorlage.de/2008/02/13/hack-unbekannte-elemente-im-ie-stylen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox 3: Gran Paradiso Beta 7 mit Cross Site Access</title>
		<link>http://blog.formatvorlage.de/2007/08/06/firefox-3-gran-paradiso-beta-7-mit-cross-site-access/</link>
		<comments>http://blog.formatvorlage.de/2007/08/06/firefox-3-gran-paradiso-beta-7-mit-cross-site-access/#comments</comments>
		<pubDate>Mon, 06 Aug 2007 09:38:03 +0000</pubDate>
		<dc:creator>Claus</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://blog.formatvorlage.de/2007/08/06/firefox-3-gran-paradiso-beta-7-mit-cross-site-access/</guid>
		<description><![CDATA[Mozilla hat die siebte Beta Version von Gran Paradiso vorgestellt. Neben einem Haufen interessanter Änderungen ist das die aufregendste Neuigkeit: der W3C Draft &#8220;Enabling Read Access for Web Resources&#8221; wurde implementiert. Das bedeutet nicht mehr und nicht weniger als den Beginn einer Revolution im Web. Konnte man seit Beginn des Web zwischen Frames aus unterschiedlichen [...]]]></description>
			<content:encoded><![CDATA[<p>Mozilla hat die siebte Beta Version von Gran Paradiso vorgestellt. Neben einem <a href="http://www.mozilla.org/projects/firefox/3.0a7/releasenotes/">Haufen interessanter Änderungen</a> ist das die aufregendste Neuigkeit: der W3C Draft &#8220;<a href="http://dev.w3.org/2006/waf/access-control/Overview.html">Enabling Read Access for Web Resources</a>&#8221; wurde implementiert. Das bedeutet nicht mehr und nicht weniger als den Beginn einer Revolution im Web. Konnte man seit Beginn des Web zwischen Frames  aus unterschiedlichen Domains nicht kommunizieren &#8211; außer mit dem zwar etwas merkwürdigen, aber funktionierenden Trick des Dojo Toolkit &#8211; und auch keine XMLHttpRequests auf eine fremde Domain absetzen, ist das mit dieser Spezifikation jetzt möglich. Möglich gemacht wird das durch einen Access Control Mechanism, der entweder als HTTP-Header oder XML Processing Instruction funktioniert.</p>
<p><span id="more-15"></span></p>
<p>Ein solcher HTTP-Header sieht folgendermaßen aus (Beispiel aus dem Draft):</p>
<p><code>Content-Access-Control: allow &lt;*.example.org&gt; exclude &lt;*.public.example.org&gt;<br />
Content-Access-Control: allow &lt;webmaster.public.example.org&gt;</code></p>
<p>Der erste Header erlaubt Cross Site Access aus allen Subdomains von example.org außer den Subdomains von public.example.org. Der zweite erlaubt den Zugriff explizit aus der Domain webmaster.public.example.org.</p>
<p>Beispiele von XML Processing Instructions:</p>
<p><code>&lt;?access-control allow="*.example.org"?&gt;</code><br />
<code>&lt;?access-control deny="*.public.example.org"?&gt;</code></p>
<p>Ich bin gespannt wie sich die noch nicht endgültige Fassung der Spezifikation weiter entwickeln wird und vor allem wann die ersten Sites und HTTP-Server diesen Mechanismus implementieren werden. Wie auch immer: das Web ist heute wieder ein Stückchen aufregender geworden <img src='http://blog.formatvorlage.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.formatvorlage.de/2007/08/06/firefox-3-gran-paradiso-beta-7-mit-cross-site-access/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript Performance: Rhino vs. Spidermonkey</title>
		<link>http://blog.formatvorlage.de/2007/07/13/javascript-performance-rhino-vs-spidermonkey-2/</link>
		<comments>http://blog.formatvorlage.de/2007/07/13/javascript-performance-rhino-vs-spidermonkey-2/#comments</comments>
		<pubDate>Fri, 13 Jul 2007 08:47:20 +0000</pubDate>
		<dc:creator>Claus</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://formatvorlage.de/wordpress/2007/07/13/javascript-performance-rhino-vs-spidermonkey-2/</guid>
		<description><![CDATA[In den letzten Wochen hat sich einiges getan in Sachen JavaScript auf dem Server, siehe zum Beispiel John Resigs Posting &#8220;Bringing the Browser to the Server&#8221; oder mod_js. Die Idee ist mir schon seit einer Weile im Kopf rumgegangen: JavaScript eignet sich für Rapid Development und das Coding des Presentation Tier. In dem Maß, wie [...]]]></description>
			<content:encoded><![CDATA[<p>In den letzten Wochen hat sich einiges getan in Sachen JavaScript auf dem Server, siehe zum Beispiel John Resigs Posting &#8220;<a href="http://ejohn.org/blog/bringing-the-browser-to-the-server/">Bringing the Browser to the Server</a>&#8221; oder <a href="http://www.modjs.org/">mod_js</a>. Die Idee ist mir schon seit einer Weile im Kopf rumgegangen: JavaScript eignet sich für Rapid Development und das Coding des Presentation Tier. In dem Maß, wie Web Applikationen zu &#8220;echten&#8221; Applikationen werden, sollte die Grenze zwischen Client und Server durchlässiger werden. Ganz abgesehen davon, dass JavaScript sexy ist. Die mit JavaScript <a href="http://developer.mozilla.org/en/docs/New_in_JavaScript_1.6">1.6</a> und <a href="http://developer.mozilla.org/en/docs/New_in_JavaScript_1.7">1.7</a> eingeführten Sprachfeatures wie Iteratoren, Generatoren und vor allem E4X haben es zu einer extrem interessanten Alternative zu etablierten Sprachen wie Java oder PHP werden lassen. Das größte Problem habe ich im Bereich der Performance erwartet, weswegen ich einige Testcases für einen kleinen Battle PHP vs. JavaScript geschrieben habe. Die Ergebnisse waren teilweise extrem überraschend, aber anders, als ich es erwartet habe.<span id="more-7"></span></p>
<p>Ich habe PHP 5.2.0, Spidermonkey JS 1.6.0 Final und Rhino 1.6R5 verwendet. Die beiden ersteren habe ich selber gebaut und Rhino als fertiges JAR verwendet. Als Java VM kam Java HotSpot (build 1.5.0_07-87, mixed mode, sharing) zum Einsatz. Getestet wurde das ganze auf einem 2 Ghz MacBook auf der Shell, indem ich meine Testfiles mit der Option -f spezifiziert habe. Die Zeitmessung wurde mit dem Kommando time durchgeführt, die angegebenen Werte sind jeweils die User Time. Die Testfiles wurden so identisch wie möglich implementiert, d.h. es kamen keine sprachspezifischen Erweiterungen zum Einsatz (für Test 2 hätte sich in JavaScript z.B. die Verwendung von Generatoren/Iteratoren angeboten).</p>
<table>
<tr>
<th>Test</th>
<th>PHP 5.2.0</th>
<th>Rhino</th>
<th>Spidermonkey</th>
</tr>
<tr>
<td>Test 1: 10^8 mal ein wenig Arithmetik in einer Schleife</td>
<td>0m25.427s</td>
<td>1m33.396s</td>
<td>1m7.248s</td>
</tr>
<tr>
<td>Test 2: Berechnung der Fibonacci Reihe von 10, 10^6 Wiederholungen, rekursiv implementiert</td>
<td>0m30.410s</td>
<td><strong><em>0m7.376s</em></strong></td>
<td><strong><em>0m16.689s</em></strong></td>
</tr>
<tr>
<td valign="top">Test 3: 2 Klassen definiert, eine abgeleitete, 10^6 Wiederholungen: Instanz erzeugt, Superklassen Konstruktur aufgerufen, danach ein Boolscher Test und eine String-Verkettung.</td>
<td valign="top">0m9.451s</td>
<td valign="top"><strong><em>0m4.061s</em></strong></td>
<td valign="top"><strong><em>0m9.992s</em></strong></td>
</tr>
</table>
<p>Ich muss sagen, dass ich von den Ergebnissen extrem überrascht bin. Ganz besonders bei Test 2 und 3 im Vergleich zu Spidermonkey und Rhino. Um das nochmal zu verdeutlichen: für Rhino muss eine Java VM initialisiert, das JAR eingelesen und die JavaScript Engine gestartet werden. Und trotzdem ist die Ausführungszeit für die Tests um mehr als Faktor 2 kleiner als für die in C implementierte Engine?! Auch wenn die verwendete Java VM einen Just-In-Time compiled, kann das doch wohl kaum schneller sein. Das muss mir mal bitte jemand erklären. Übersehe ich was?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.formatvorlage.de/2007/07/13/javascript-performance-rhino-vs-spidermonkey-2/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

