<?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>KM2 &#62;&#62; Neuerfindung &#187; Background Task</title>
	<atom:link href="http://www.km2.de/blog/tags/background-task/feed" rel="self" type="application/rss+xml" />
	<link>http://www.km2.de/blog</link>
	<description>Arbeitstitel</description>
	<lastBuildDate>Fri, 10 Feb 2012 10:57:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Non Blocking JavaScript</title>
		<link>http://www.km2.de/blog/2009/12/02/non-blocking-javascript.html</link>
		<comments>http://www.km2.de/blog/2009/12/02/non-blocking-javascript.html#comments</comments>
		<pubDate>Wed, 02 Dec 2009 12:48:39 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Background Task]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Nebenläufigkeit]]></category>
		<category><![CDATA[Technikzeugs]]></category>

		<guid isPermaLink="false">http://www.km2.de/blog/?p=3154</guid>
		<description><![CDATA[JavaScript ist toll. Ja. Und ist heute aus der Webentwicklung nicht mehr wegzudenken. Allerdings hat Javascript einen kleinen Schwachpunkt: Es gibt keine Nebenläufigkeit. JavaScript wird linear ausgeführt*. Will man beispielsweise länger dauernde Operationen in JavaScript realisieren, gerät man schnell an den Punkt, dass der Browser nicht reagiert, blockiert, träge wird. Eine Lösung dies zu umgehen [...]]]></description>
			<content:encoded><![CDATA[<p>JavaScript ist toll. Ja. Und ist heute aus der Webentwicklung nicht mehr wegzudenken. Allerdings hat Javascript einen kleinen Schwachpunkt: Es gibt keine Nebenläufigkeit. JavaScript wird linear ausgeführt*.</p>
<p>Will man beispielsweise länger dauernde Operationen in JavaScript realisieren, gerät man schnell an den Punkt, dass der Browser nicht reagiert, blockiert, träge wird. Eine Lösung dies zu umgehen gibt es: Die Algorithmen dahingehend ändern, nur kleine Teile des Problems auf einmal zu berechnen.</p>
<p><span id="more-3154"></span><strong>Beispiel:<span> Alle Zahlen von 0 bis 100000 zusammenzählen.</span></strong></p>
<pre>var sum = 0;
for (var i = 0; i &lt; 1000000; i++) {
    sum += i;
}</pre>
<p>Diese Schleife blockiert und das Script reagiert träge bzw. gar nicht mehr. Damit man nun das Rad nicht neu erfinden muss, hat <a href="http://www.tumuski.com/">Thomas </a><span><a href="http://www.tumuski.com/">Peri</a> eine sehr interessante JavaScript-Bibliothek geschrieben: <a href="http://www.tumuski.com/code/clumpy/overview/">Clumpy</a>. </span></p>
<p><span>Clumpy versucht eine Pseudonebenläufigkeit in JavaScript zu realisieren, und das auf eine sehr elegante Art.</span></p>
<p><strong><span>Beispiel: Die obere Schleife mit dem Clumpy-Way-Of-Life:</span></strong></p>
<pre>var sum = 0;
clumpy.for_loop(
    function () { i = 0; },
    function () { return i &lt; 100000; },
    function () { i++; },
    function () {
        sum += i;
    }
);</pre>
<p>Clumpy kann aber noch viel mehr: Verschachtelung von Schleifen, Verkettung, saubere Notification über den Status &#8230; etc &#8230; <em>I am impressed my dear!</em></p>
<p><em>* Die asynchronen HTTP-Requests werden über, nun ja, </em><em>esoterische Mittel realisiert, damit eine Anfrage nicht blockiert.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.km2.de/blog/2009/12/02/non-blocking-javascript.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

