<?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>trafex &#187; Optimierung</title>
	<atom:link href="http://trafex.de/blog/tag/optimierung/feed/" rel="self" type="application/rss+xml" />
	<link>http://trafex.de</link>
	<description>webdev blog</description>
	<lastBuildDate>Mon, 05 Mar 2012 18:26:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Benchmark von PHP Funktionen und ihren Varianten</title>
		<link>http://trafex.de/blog/26/benchmark-php-funktionen-und-ihren-varianten/</link>
		<comments>http://trafex.de/blog/26/benchmark-php-funktionen-und-ihren-varianten/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 14:10:09 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Benchmark]]></category>
		<category><![CDATA[Optimierung]]></category>

		<guid isPermaLink="false">http://trafex.de/?p=26</guid>
		<description><![CDATA[Das sich die Ausführungsgeschwindigkeit von verschiedenen Funktionen in PHP unterscheidet sollte eigentlich bekannt sein. Chris Vincent hat dazu nun auf der Seite phpbench.com dazu eine Übersicht bereitgestellt, welche die verschiedenen Funktionen miteinander vergleicht. Dazu gibt es zu jeder Funktion Code-Beispiele. So sieht man z.B. schön, dass die Verwendung von foreach() beim Abarbeiten eines Hashs deutlich [...]]]></description>
			<content:encoded><![CDATA[<p>Das sich die Ausführungsgeschwindigkeit von verschiedenen Funktionen in PHP unterscheidet sollte eigentlich bekannt sein. <a href="http://www.chrisvincent.com.au/">Chris Vincent</a> hat dazu nun auf der Seite <a href="http://www.phpbench.com/">phpbench.com</a> dazu eine Übersicht bereitgestellt, welche die verschiedenen Funktionen miteinander vergleicht. Dazu gibt es zu jeder Funktion Code-Beispiele.<br />
So sieht man z.B. schön, dass die Verwendung von foreach() beim Abarbeiten eines Hashs deutlich schneller ist als eine while()-Schleife, aber auch nicht in jedem Fall. Oder das print etwas langsamer arbeitet als echo.</p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/26/benchmark-php-funktionen-und-ihren-varianten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Intern: trafex.de jetzt XHTML 1.0 Valid</title>
		<link>http://trafex.de/blog/23/intern-trafexde-jetzt-xhtml-10-valid/</link>
		<comments>http://trafex.de/blog/23/intern-trafexde-jetzt-xhtml-10-valid/#comments</comments>
		<pubDate>Fri, 11 Apr 2008 13:30:57 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[Kompatibilität]]></category>
		<category><![CDATA[trafex]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[intern]]></category>
		<category><![CDATA[Optimierung]]></category>
		<category><![CDATA[Templates]]></category>
		<category><![CDATA[WebDev]]></category>

		<guid isPermaLink="false">http://trafex.de/?p=23</guid>
		<description><![CDATA[Gestern Abend hatte ich kurz Zeit gefunden ein paar XHTML-Fehler zu beseitigen. Somit ist trafex.de jetzt XHTML 1.0 Valid. Im Wesentlichen handelte es sich dabei um eine Ersetzung von onClick nach onclick, sowie um &#38; Zeichen in Links welche korrekt &#38;amp; geschrieben werden müssen.]]></description>
			<content:encoded><![CDATA[<p>Gestern Abend hatte ich kurz Zeit gefunden ein paar XHTML-Fehler zu beseitigen. Somit ist trafex.de jetzt XHTML 1.0 Valid.<br />
Im Wesentlichen handelte es sich dabei um eine Ersetzung von onClick nach onclick, sowie um &amp; Zeichen in Links welche korrekt &amp;amp; geschrieben werden müssen.</p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/23/intern-trafexde-jetzt-xhtml-10-valid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress durch Caching beschleunigen</title>
		<link>http://trafex.de/blog/15/wordpress-durch-caching-beschleunigen/</link>
		<comments>http://trafex.de/blog/15/wordpress-durch-caching-beschleunigen/#comments</comments>
		<pubDate>Tue, 22 Jan 2008 07:23:09 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[trafex]]></category>
		<category><![CDATA[Caching]]></category>
		<category><![CDATA[Optimierung]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://trafex.de/blog/15/wordpress-durch-caching-beschleunigen/</guid>
		<description><![CDATA[WordPress ist im allgemeinen doch recht schnell. Man kann durch PHP-Optimizer noch etwas Geschwindigkeit &#8216;rausholen. Dazu bietet sich z.B. eAccelerator an, welcher als Fork aus dem mmcache hervorging. Gerade habe ich eine andere, einfach zu installierende Möglichkeit entdeckt, welch auch ohne Server-Zugang zur Installation von PHP-Modulen auskommt: ein einfach zu installierende WordPress Plugin namens &#8220;WP-Cache&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>WordPress ist im allgemeinen doch recht schnell. Man kann durch PHP-Optimizer noch etwas Geschwindigkeit &#8216;rausholen. Dazu bietet sich z.B. eAccelerator an, welcher als Fork aus dem mmcache hervorging.<br />
Gerade habe ich eine andere, einfach zu installierende Möglichkeit entdeckt, welch auch ohne Server-Zugang zur Installation von PHP-Modulen auskommt: ein einfach zu installierende WordPress Plugin namens &#8220;<a href="http://mnm.uib.es/gallir/wp-cache-2/">WP-Cache</a>&#8221;<br />
Dieses wird &#8211; wie schon erwähnt &#8211; einfach als WordPress PlugIn installiert. Anschließend muss man noch einen symbolischen Link erzeugen (wer dies nicht kann (z.B. beim Zugang über FTP) kann die Datei auch einfach kopieren), ein kleiner Config-Eintrag hinzu und das Plugin sowie das Caching noch anschalten und schon kann gecached werden.</p>
<p>Das Plugin arbeitet in 2 Stufen: die erste schaut nach, ob eine gegachte  Version der Seite vorliegt und liefert diese ggf. aus. Die 2. Stufe kommt zum Tragen wenn die Seite noch nicht gecached ist oder wenn die Cache-Laufzeit überschritten ist. Es wird die komplette Seite incl. aller Plugins gecached und somit die Auslieferungsgeschwindigkeit um einiges Erhöht. Alle Optionen kann man fein säuberlich einstellen. Auch wenn bestimmte Seiten nicht gecached werden sollen und und und.</p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/15/wordpress-durch-caching-beschleunigen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wenn innerHTML nicht schnell genug ist</title>
		<link>http://trafex.de/blog/13/wenn-innerhtml-nicht-schnell-genug-ist/</link>
		<comments>http://trafex.de/blog/13/wenn-innerhtml-nicht-schnell-genug-ist/#comments</comments>
		<pubDate>Thu, 10 Jan 2008 18:24:16 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[innerHTML]]></category>
		<category><![CDATA[Optimierung]]></category>
		<category><![CDATA[replaceHTML]]></category>
		<category><![CDATA[WebDev]]></category>

		<guid isPermaLink="false">http://trafex.de/blog/13/wenn-innerhtml-nicht-schnell-genug-ist/</guid>
		<description><![CDATA[Es gibt mehrere Wege Inhalt auf einer Seite auszutauschen. Man kann das DOM Modell verwenden, welches von W3 Konsortium standardisiert worden ist. Die gebräuchlichere Variante ist jedoch in den meisten Fällen innerHTML zu benutzen. Auch ist die Verwendung von innerHTML mit den meisten Browsern schneller als die Verwendung der DOM Methoden. Beispiel: &#60;p id=&#34;inhalt&#34;&#62;Hier kommt [...]]]></description>
			<content:encoded><![CDATA[<p>Es gibt mehrere Wege Inhalt auf einer Seite auszutauschen. Man kann das DOM Modell verwenden, welches von W3 Konsortium standardisiert worden ist. Die gebräuchlichere Variante ist jedoch in den meisten Fällen innerHTML zu benutzen. Auch ist die Verwendung von innerHTML mit den meisten Browsern schneller als die Verwendung der DOM Methoden.</p>
<p>Beispiel:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;p id=&quot;inhalt&quot;&gt;Hier kommt beliebiger Inhalt
&lt;a href=&quot;#&quot; onclick=&quot;document.getElementById('inhalt').innerHTML='Und jetzt der neue Text';&quot;&gt;Inhalt tauschen&lt;/a&gt;</pre></div></div>

<p>Wenn jedoch viele HTML-Elemente in dem zu tauschendem Inhalt sind, kann das Austauschen durchaus etwas Zeit in Anspruch nehmen.</p>
<p>Steven Levithan stellt in seinem <a href="http://blog.stevenlevithan.com/archives/faster-than-innerhtml" target="_blank">Blog</a> mit replaceHTML eine JavaScript-Funktion vor, welche diese Aufgabe schneller erledigen kann.<span id="more-13"></span></p>
<p>Code:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> replaceHtml<span style="color: #009900;">&#40;</span>el<span style="color: #339933;">,</span> html<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> oldEl <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">typeof</span> el <span style="color: #339933;">===</span> <span style="color: #3366CC;">&quot;string&quot;</span> <span style="color: #339933;">?</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>el<span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> el<span style="color: #339933;">;</span>
    <span style="color: #006600; font-style: italic;">/*@cc_on // Pure innerHTML is slightly faster in IE
    oldEl.innerHTML = html;
    return oldEl;
    @*/</span>
    <span style="color: #003366; font-weight: bold;">var</span> newEl <span style="color: #339933;">=</span> oldEl.<span style="color: #660066;">cloneNode</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    newEl.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> html<span style="color: #339933;">;</span>
    oldEl.<span style="color: #660066;">parentNode</span>.<span style="color: #660066;">replaceChild</span><span style="color: #009900;">&#40;</span>newEl<span style="color: #339933;">,</span> oldEl<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #006600; font-style: italic;">/* Since we just removed the old element from the DOM, return a reference
    to the new element, which can be used to restore variable references. */</span>
    <span style="color: #000066; font-weight: bold;">return</span> newEl<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Beispiel für die Benutzung:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// innerHTML</span>
el.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> newHtml
&nbsp;
<span style="color: #006600; font-style: italic;">// replaceHTML</span>
el <span style="color: #339933;">=</span> replaceHtml<span style="color: #009900;">&#40;</span>el<span style="color: #339933;">,</span> newHtml<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Wenn man nur wenige Elemente überschreibt macht die Benutzung von replaceHTML allerdings wenig Sinn. Seine Stärken kann die Funktion nur ausspielen wenn man wirklich viele Elemente austauscht. Und da vor allem beim Verwerfen von vorhandenen Elementen.<br />
Einen kleinen Benchmark, der im Browser läuft, stellt er auch gleich zur Verfügung: <a href="http://stevenlevithan.com/demo/replaceHtml.html" target="_blank">Link</a></p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/13/wenn-innerhtml-nicht-schnell-genug-ist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.234 seconds -->

