jquery_logo

jQuery ile performans hareketleri – 1

Bu yazı serisinde jQuery ile nasıl performans çakallıkları yapabiliriz bunlara değineceğim. Zaman zaman çok ufak nüanslar ile ciddi yüklerden kurtulabiliyoruz, önemli olan bu nüansları görebilmek. Yaptığım işlerde jQuery’ i sadece bu amaçlarla kullandığım bile oluyor. Neyse lafı fazla uzatmadan ilk hareketimize geçelim.



Satır sayısı yani veritabanından gelen kayıtların sayısı çoğu zaman ihtiyaç duyduğumuz bir veridir. Bu veriyi veritabanından almak için Count() fonksiyonunu kullanıyoruz. Karmaşık bir sorgu sonucu aldığımız verileri kullanıcılara sunacağımızı varsayalım, count işlemini yapabilmek için verileri gruplamamız (group by) gerekebilir yada count için ayrı bir sorgu yazmamız gerekebilir. Bunlar hem ekstra uğraş isteyen hemde ekstra iş yüküdür. Eğer bir grid kontrülü yada datatable benzeri bir yapı kullanıyorsanız direk içindeki verinin satır sayısını alabilirsiniz kullanmıyorsanız jQuery ile html etiketlerini lenght ile sayarak sonuca ulaşabilirsiniz. Hemen örnekleyelim;

    <ul class="ornekLi">
	    <li>satır 1</li>
	    <li>satır 2</li>
	    <li>satır 3</li>
	    <li>satır 4</li>
	    <li>satır 5</li>
    </ul>

    <table class="ornekTable">
        <tr>
            <td>Satır 1</td>
        </tr>
        <tr>
            <td>Satır 2</td>
        </tr>
        <tr>
            <td>Satır 3</td>
        </tr>
    </table>

    <table class="ornekTable2">
        <tr>
            <td>Satır 1</td>
            <td>Satır 2</td>
            <td>
                <ul>
	                <li>satır 1</li>
	                <li>satır 2</li>
	                <li>satır 3</li>
	                <li>satır 4</li>
                </ul>
            </td>
            <td>Satır 4</td>
            <td>
                <ul>
	                <li>satır 1</li>
	                <li>satır 2</li>
                </ul>
            </td>
        </tr>
    </table>

Yukarıdaki html çıktısında veritabanımızdan gelen verileri listelediğimizi varsayıyoruz.

    <script type="text/javascript">
        $(document).ready(function () {
         
         alert($(".ornekLi").length);
         alert($(".ornekTable tr").length);

         $(".ornekTable2 tr td").each(function () {
                var t = $(this);
                var count = t.find("ul li").length;
                if (count > 0) {
                    t.prepend("<h5>" + count + " adet</h5>");
                }
                else {
                    t.prepend("<h5>li yok</h5>");
                }
            });
        });   
    </script>

Bu sayede count işlemi için sql e bulaşmamış olduk. Hatta karmaşık durumlarda bile jquery’ nin seçicileri sayesinde bir sürü kod yazmaktan kurtulup işlemimizi gerçekleştirdik. Umarım faydalı bir bilgi olmuştur, ilerleyen günlerde benzer yöntemler ile geri geleceğim ;)