1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

به نکات زیر در مورد JQuery توجه کنید!

شروع موضوع توسط AftabGardoon ‏5/2/19 در انجمن JQuery

  1. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    [​IMG]
     
  2. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    ۱- از آخرین نسخه جی کوئری (Latest jQuery) استفاده کنید:
    در صورتی که در وب سایت خود از جی کوئری استفاده می کنید، یکی از راحت ترین و ساده ترین روش هایی که باعث بهبود کارایی وب سایت تان خواهد شد، استفاده از آخرین ورژن موجود از کتابخانه جی کوئری می باشد. هر بار که نسخه جدیدی از کتابخانه جی کوئری معرفی و ارائه می شود، کدهای بهینه تری در آن استفاده می شود و باگ ها و خطاهای موجود در نسخه های قبلی را برطرف ساخته اند. خوشبختانه در اکثر مواقع، برای بروزرسانی نسخه کتابخانه جی کوئری تنها کافیست تگ اسکریپت آنرا تغییر دهید.

    استفاده از CDN های جی کوئری:
    شما می توانید کتابخانه جی کوئری را مستقیما از سرورهای گوگل به وب سایت خود اضافه کنید که CDN های رایگان فراوانی از جاوااسکریپت را برای مدیران وب سایت و برنامه نویسان فراهم می کند. در تصویر زیر کتابخانه های موجود در جاوااسکریپت را مشاهده می کنید:


    [​IMG]
     
  3. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
  4. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    ۲- ساده نویسی سلکتورهای جی کوئری (Simple Selectors):
    از ابتدای پیدایش اینترنت و وب سایت، وقتی می خواستیم المانی را از صفحه وب انتخاب کنیم، باید توسط جاوااسکریپت و بصورت: getElementById() وgetElementByClassName() و getElementByTagName() اینکار را انجام می دادیم. اما پس از پیدایش جی کوئری، می توان از سلکتورهای جی کوئری استفاده کرد. تمام مرورگرها نیز از این سلکتورها پشتیبانی می کنند و جای هیچ نگرانی نیست!

    [​IMG]
     
  5. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    لطفا سلکتورهای زیر را در نظر بگیرید:
    کد:
    $('li[data-selected="true"] a')   // Fancy, but slow
    $('li.selected a')  // Better
    $('#elem')  // Best
    
    سلکتور آیدی در jQuery:
    همانطور که مشاهده می کنید، دستور اول، زیباست اما سرعتش کم می باشد. دستور دوم از اولی بهتر است و اما دستور آخر از همه آنها بهتر و سریع تر می باشد. بنابراین اگر سلکتور را با آیدی (ID) تعریف کنیم، سرعت بیشتری نسبت به سایر سلکتورها خواهد داشت. اگر می خواهید المانی را با نام کلاسش انتخاب کنید، باید تگ آن المان را قید نمائید. مانند دستور دوم از مثال فوق (li.selected) در صورتی که سلکتورها را بصورت بهینه بنویسیم، مطمئنا در مرورگرهای قدیمی تر و دستگاه های موبایل، تاثیرش را خواهیم دید و پردازش کدهای جی کوئری، سرعت بیشتری خواهد داشت.
     
  6. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    تعریف متغیر برای سلکتور جی کوئری:
    انتخاب (select) المان ها در کدهای جاوااسکریپت و یا جی کوئری، کندترین و زمان بر ترین بخش از اجرای جاوااسکریپت می باشد. پس با نوشتن کدهای بهینه برای انتخاب المان های موردنظرمان، تا حد زیادی می توانیم سرعت اجرای کدهای جاوااسکریپت را افزایش دهیم. یکی دیگر از روش های تسریع اجرای کدهای جی کوئری، ریختن المان انتخاب شده (Selected Element) در یک متغیر می باشد. از این پس، هر جا که نیاز به استفاده مجدد از آن المان باشد، متغیر را استفاده می کنیم و نه سلکتور. به مثال زیر دقت کنید:

    کد:
    var buttons = $('#navigation a.button');
    // Some prefer prefixing their jQuery variables with $:
    var $buttons = $('#navigation a.button');
     
    DaniyaL از این پست تشکر کرده است.
  7. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    سلکتورهای جانبی جی کوئری:
    مورد دیگری که ارزش مطرح شدن دارد، اینست که جی کوئری از سلکتورهای جانبی زیادی پشتیبانی می کند. مانند :visible و :hidden و :animated و… به مثال زیر نگاه کنید:
    کد:
    $('a.button:animated');   // Does not use querySelectorAll()
    $('a.button').filter(':animated');  // Uses it
    
    نتیجه هر دوی این کدها یکسان می باشد اما سرعت اجرای دومی بیشتر خواهد بود. بنابراین سعی کنید ابتدا المان موردنظر را انتخاب کنید و سپس توسط متد فیلتر (filter) سکتورهای جانبی را روی آن اعمال کنید.
     
  8. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    ۳- آبجکت های جی کوئری بعنوان آرایه (jQuery Objects as Array):
    نتیجه اجرای یک سلکتور، یک آبجکت (شی) جی کوئری می باشد. اما خود جی کوئری این آبجکت بازگشتی را به صورت یک آرایه در می آورد که دارای طول (length) و ایندکس (index) می باشد. دستورات زیر را در نظر بگیرید:
    کد:
    // Selecting all the navigation buttons:
    var buttons = $('#navigation a.button');
    // We can loop though the collection:
    for(var i=0;i/ A DOM element, not a jQuery object
    }
    // We can even slice it:
    var firstFour = buttons.slice(0,4);
     
  9. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    بهبود کارایی کدهای جی کوئری:
    اگر شما بدنبال بهبود کارایی (performance) کدهای جی کوئری وب سایت تان هستید، استفاده از for ساده و while بجای $.each در دستورات جی کوئری، تا حد زیادی باعث سریع تر شدن اجرای کدهای جی کوئری خواهد شد. چک کردن طول آرایه نیز یکی دیگر از روش های بهینه سازی دستورات جی کوئری می باشد.
    کد:
    if(buttons){  // This is always true
        // Do something
    }
    if(buttons.length){ // True only if buttons contains elements
        // Do something
    }
    در مثال فوق، با بررسی buttons.length در یک if ، چک می کنیم که آیا آرایه (همان آبجکت بازگشتی از نتیجه یک سلکتور) دارای آیتمی می باشد و یا خالی است.
     
  10. مدیر بازنشسته☕

    تاریخ عضویت:
    ‏15/8/17
    ارسال ها:
    5,336
    تشکر شده:
    42,669
    امتیاز دستاورد:
    113
    ۴- Selector Property:
    جی کوئری دارای یک property می باشد که به اولین المان در یک سلکتور چند بخشی اشاره دارد. در مثال زیر، selector برابر #container خواهد بود:
    کد:
    $('#container li:first-child').selector    // #container li:first-child
    $('#container li').filter(':first-child').selector    // #container li.filter(:first-child)
    اگر چه دو دستور فوق یک نتیجه خواهند داشت و به یک المان اشاره دارند اما همانطور که مشاهده می کنید، سلکتورهای متفاوتی دارند. استفاده از عبارت selector در دستور دوم نامعتبر (invalid) است زیرا selector نمی تواند بعد از متد filter بیاید.