<?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/"
	
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>HÜSEYİN MERT &#187; jQuery seçici</title>
	<atom:link href="http://www.hmert.com/tag/jquery-secici/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hmert.com</link>
	<description>Sadece teknoloji değil...</description>
	<lastBuildDate>Thu, 17 Jun 2010 06:58:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>jQuery Seçici Performansı</title>
		<link>http://www.hmert.com/2009/10/07/jquery-secici-performansi/</link>
		<comments>http://www.hmert.com/2009/10/07/jquery-secici-performansi/#comments</comments>
		<pubDate>Wed, 07 Oct 2009 15:15:41 +0000</pubDate>
		<dc:creator>Hüseyin Mert</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Tasarım]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[$()]]></category>
		<category><![CDATA[jquery class]]></category>
		<category><![CDATA[jquery id]]></category>
		<category><![CDATA[jQuery seçici]]></category>

		<guid isPermaLink="false">http://www.hmert.com/?p=545</guid>
		<description><![CDATA[
Az kodla çok iş yapmanızı sağlayan jQuery&#8217;nin elementleri seçme hızını gözleyeceğiz. jQuery, yine bu kütüphanenin üreticisi olan John Resig tarafından geliştirilen Sizzle seçici motorunu kullanıyor. Bu da 1.3.x sürümlerinden itibaren ana çekirdeğe katılarak çok ciddi performans artışı (25 kat) sağlandı. Stack Overflow&#8217;da da bu konu tartışılmış ortalama aşağıda yazılanlarla aynı görüş üzerinde buluşulmuştu.
Kendim de benzer [...]]]></description>
			<content:encoded><![CDATA[<p style="text-aling:center"><a href="http://sizzlejs.com"><img src="http://www.hmert.com/wp-content/uploads/2009/10/sizzle-logo.png" alt="sizzle-logo" title="sizzle-logo" width="287" height="147" /></a></p>
<p>Az kodla çok iş yapmanızı sağlayan jQuery&#8217;nin elementleri <a href="http://docs.jquery.com/Selectors">seçme</a> hızını gözleyeceğiz. jQuery, yine bu kütüphanenin üreticisi olan John Resig tarafından geliştirilen <a href="http://sizzlejs.com/">Sizzle</a> seçici motorunu kullanıyor. Bu da 1.3.x sürümlerinden itibaren ana çekirdeğe katılarak <a href="http://jquery-howto.blogspot.com/2009/01/jquery-126-and-jquery-13-class-selector.html">çok ciddi performans artışı</a> (<strong>25 kat</strong>) sağlandı. Stack Overflow&#8217;da da bu konu <a href="http://stackoverflow.com/questions/46214/good-ways-to-improve-jquery-selector-performance">tartışılmış</a> ortalama aşağıda yazılanlarla aynı görüş üzerinde buluşulmuştu.<br />
Kendim de benzer bir seçici performansı ölçen bir ufak kod yazdım. Biliyorsunuz istatistik oluşmak için çok dikkatlı olmak gerek. Fakat ben burda çok fazla bir detaylı bir çerçeve oluşturamayacağım için, sadece görmek için yeterli bir çalışma yaptım.<br />
<a href="http://www.hmert.com/demo/jquery-selector-test.php" title="jQuery Seçici Performansı"><img src="http://www.hmert.com/wp-content/uploads/2009/10/jquery-secici-performansi.png" alt="jquery-secici-performansi" title="jQuery Seçici Performansı" width="510" height="447" class="aligncenter size-full wp-image-550" /></a><br />
adresinden inceleyebilirisiniz.<br />
<a href="http://www.no-margin-for-errors.com/2009/04/28/demystifying-the-jquery-selectors-optimization/">jQuery&#8217;nin seçici performansını açığa kavurşturalım</a> adlı yazıda yer alan bilgilere göre seçicilerde seçicilerin (selectors) belirliği arttıkça seçme performansı çok daha hızlandığı görülmüş.Fakat şöyle bir durum daha var, eğeer seçme şartınız artarsa bu sefer performans düşmekte.</p>
<p aling="center"><a href="http://www.hmert.com/wp-content/uploads/2009/10/classname-speed2-md.gif"><img src="http://www.hmert.com/wp-content/uploads/2009/10/classname-speed2-md-460x301.gif" alt="classname-speed2-md" title="classname-speed2-md" width="460" height="301" class="aligncenter size-medium wp-image-548" /></a></p>
<p>Hatta bu konuda John da bir yazı yayınlamış <a href="http://ejohn.org/blog/getelementsbyclassname-speed-comparison/">seçicilerin class adı seçme temelleri</a> hakkında bilgilendirmişti.<br />
<span id="more-545"></span></p>
<p aling="center"><a href="http://www.hmert.com/wp-content/uploads/2009/10/graph_1.gif"><img src="http://www.hmert.com/wp-content/uploads/2009/10/graph_1-460x247.gif" alt="graph_1" title="graph_1" width="460" height="247" class="aligncenter size-medium wp-image-546" /></a></p>
<p><code>$(’.element’)</code> seçicisi <code>$(’div.element’)</code>&#8216;e göre çok daha hızlı olduğu ölçülmüş.</p>
<p aling="center"><a href="http://www.hmert.com/wp-content/uploads/2009/10/graph_21.gif"><img src="http://www.hmert.com/wp-content/uploads/2009/10/graph_21-460x238.gif" alt="graph_21" title="graph_21" width="460" height="238" class="aligncenter size-medium wp-image-547" /></a></p>
<p><code>$(’.sample-elements:first’)</code>,<code> $(’.sample-elements .last:last’)</code>, <code>$(’.sample-elements div.last:last’)</code>,<code> $(’.sample-elements div:first’)</code>, <code>$(’.sample-elements div:eq(2)’)</code> Gördüğünüz gibi seçicideki detayın fazlalaşması da yine seçicide performans düşmesine sebep oluyor.</p>
<p aling="center"><a href="http://www.hmert.com/wp-content/uploads/2009/10/graph_3.gif"><img src="http://www.hmert.com/wp-content/uploads/2009/10/graph_3.gif" alt="graph_3" title="graph_3" width="462" height="251" class="aligncenter size-full wp-image-549" /></a></p>
<p>Asıl performanslı seçmeyi hiç şüphesiz ki id isimle seçtiğimizde alıyoruz.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">console.<span style="color: #660066;">time</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'test'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;</span>amp<span style="color: #339933;">;</span>lt<span style="color: #339933;">;</span> <span style="color: #CC0000;">500</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>  
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'.'</span><span style="color: #339933;">+</span>i<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
<span style="color: #009900;">&#125;</span>  
console.<span style="color: #660066;">timeEnd</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'test'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #006600; font-style: italic;">// $('.class');</span>
<span style="color: #006600; font-style: italic;">// ~8204ms </span>
&nbsp;
console.<span style="color: #660066;">time</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'test'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&amp;</span>amp<span style="color: #339933;">;</span>amp<span style="color: #339933;">;</span>lt<span style="color: #339933;">;</span> <span style="color: #CC0000;">500</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>  
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#'</span><span style="color: #339933;">+</span>i<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
<span style="color: #009900;">&#125;</span>  
console.<span style="color: #660066;">timeEnd</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'test'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #006600; font-style: italic;">// $('#id');</span>
<span style="color: #006600; font-style: italic;">// ~32ms</span></pre></div></div>

<p>Bu seçiciler hakkında çok daha fazla seçicinin performans testini <a href="http://www.no-margin-for-errors.com/projects/how-to-optimize-jquery-selectors/">bu linkten</a> yapabilirsiniz. Faydalanabileceğiniz diğer yazılar ise:</p>
<ul>
<li><a href="http://www.componenthouse.com/article-19">jQuery: Performance analysis of selectors</a></li>
<li><a href="http://tisba.biz/post/jQuery-Selectors-Performance.aspx">jQuery Seçicilerinde Performans Testleri</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.hmert.com/2009/10/07/jquery-secici-performansi/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:thumbnail url="http://www.hmert.com/wp-content/uploads/2009/10/sizzle-logo.png" />
		<media:content url="http://www.hmert.com/wp-content/uploads/2009/10/sizzle-logo.png" medium="image">
			<media:title type="html">sizzle-logo</media:title>
		</media:content>
		<media:content url="http://www.hmert.com/wp-content/uploads/2009/10/jquery-secici-performansi.png" medium="image">
			<media:title type="html">jquery-secici-performansi</media:title>
			<media:thumbnail url="http://www.hmert.com/wp-content/uploads/2009/10/jquery-secici-performansi-150x150.png" />
		</media:content>
		<media:content url="http://www.hmert.com/wp-content/uploads/2009/10/classname-speed2-md.gif" medium="image">
			<media:title type="html">classname-speed2-md</media:title>
			<media:thumbnail url="http://www.hmert.com/wp-content/uploads/2009/10/classname-speed2-md-150x150.gif" />
		</media:content>
		<media:content url="http://www.hmert.com/wp-content/uploads/2009/10/graph_1.gif" medium="image">
			<media:title type="html">graph_1</media:title>
			<media:thumbnail url="http://www.hmert.com/wp-content/uploads/2009/10/graph_1-150x150.gif" />
		</media:content>
		<media:content url="http://www.hmert.com/wp-content/uploads/2009/10/graph_21.gif" medium="image">
			<media:title type="html">graph_21</media:title>
			<media:thumbnail url="http://www.hmert.com/wp-content/uploads/2009/10/graph_21-150x150.gif" />
		</media:content>
		<media:content url="http://www.hmert.com/wp-content/uploads/2009/10/graph_3.gif" medium="image">
			<media:title type="html">graph_3</media:title>
			<media:thumbnail url="http://www.hmert.com/wp-content/uploads/2009/10/graph_3-150x150.gif" />
		</media:content>
	</item>
	</channel>
</rss>
