جستجو برای:
  • صفحه اصلی
  • دوره‌های آموزشی
    • توسعه نرم افزار
      • بک اند
      • دواپس
      • سرور
      • فرانت اند
    • دیجیتال مارکتینگ
      • سئو
      • تبلیغات
    • مهارت های نرم
      • تیم سازی
      • منابع انسانی
  • بلاگ
  • تماس با ما
  • درباره ما
 
  • 021۴۵۳۷۵
  • Academy@abrha.net
آکادمی ابرها
  • صفحه اصلی
  • دوره‌های آموزشی
    • توسعه نرم افزار
      • بک اند
      • دواپس
      • سرور
      • فرانت اند
    • دیجیتال مارکتینگ
      • سئو
      • تبلیغات
    • مهارت های نرم
      • تیم سازی
      • منابع انسانی
  • بلاگ
  • تماس با ما
  • درباره ما
0
عضویت / ورود

بلاگ

آکادمی ابرهابلاگبرنامه‌ نویسیتوسعه و طراحیفرانت اندجاوااسکریپت خالص بهتر است یا جی‌کوئری؟

جاوااسکریپت خالص بهتر است یا جی‌کوئری؟

12 نوامبر 2022
ارسال شده توسط تیم محتوا پارس پک
فرانت اند
541 بازدید
جی کوئری یا جاوا اسکریپت؟

در چند سال گذشته، استفاده از جاوااسکریپت ساده به‌جای jQuery افزایش یافته است. جی‌کوئری یکی از کتابخانه‌های سبک زبان JavaScript است که روند یادگیری ساده‌تری نسبت به جاوا اسکریپت دارد. با استفاده از jQuery، می‌توانید عملکردهای پیچیده را تنها با استفاده از چند خط کد انجام دهید. به‌عبارت‌دیگر، یکی از تفاوت‌های مهم بین جی‌کوئری و جاوااسکریپت کوتاه‌تر و ساده‌تر‌بودن کدها در جی‌کوئری است. با‌این‌حال، بسیاری از توسعه‌دهندگان همچنان سعی می‌کنند تا از جاوااسکریپت خالص به‌جای جی‌کوئری استفاده کنند. در این مطلب از بلاگ آکادمی ابرها، می‌خواهیم با مقایسه جاوااسکریپت و جی‌کوئری، دلیل این مسئله را توضیح دهیم؛ پس تا پایان با ما همراه باشید.

ساده و مختصر بودن کدها؛ اولین فرق تفاوت جی‌کوئری و جاوااسکریپت

جی‌کوئری کتابخانه‌ای است که انتزاع فراوانی دارد و همین موضوع استفاده از آن را نیز آسان می‌کند. برای روشن‌تر‌شدن موضوع، به این مثال توجه کنید.

در‌ادامه، کد ساده‌ای از جاوااسکریپت خالص را می‌بینید: 

function fadeIn(el) { // Vanilla JavaScript
  el.style.opacity = 0;
  var last = +new Date();
  var tick = function() {
    el.style.opacity = +el.style.opacity + (new Date() - last) / 400;
    last = +new Date();
    if (+el.style.opacity < 1) {
      (window.requestAnimationFrame && requestAnimationFrame(tick)) || setTimeout(tick, 16);
    }
  };
  tick();
}
fadeIn(el); // calling the above function

معادل همین کد در کتابخانه جی‌کوئری به‌صورت زیر است:

$(el).fadeIn();

همان‌طور‌که در این مثال نیز مشاهده می‌کنید، کتابخانه jQuery توابع از‌پیش‌نوشته‌شده‌ای دارد که از آن‌ها می‌توان برای اقدامات مختلف مانند اعمال تغییرات در DOM و انیمیشن‌ها یا اجرای ناهم‌زمان (AJAX) استفاده کرد.

جی کوئری چیست؟

مزایا و معایب jQuery

برخی از مزایای jQuery عبارت‌اند از:

۱. انعطاف‌پذیری در انواع مرورگرها

یکی از مزیت‌های اصلی jQuery انعطاف‌پذیری در انواع مرورگرهاست. به‌عبارت‌دیگر، کدهایی که با jQuery می‌نویسید، در تمامی مرورگرهای رایج به‌طورکامل و بدون مشکل اجرا می‌شوند. بدین‌ترتیب، دیگر نیازی نیست تا درباره مرورگری که کاربر از آن استفاده می‌کند، نگرانی داشته باشید. گفتنی است امروزه اکثر مرورگرها از عملکردهای مشابه در JavaScript نیز پشتیبانی می‌کنند.

۲. کدهای کاربرپسند و ساده

یکی دیگر از مزیت‌های jQuery که می‌توان از آن به‌عنوان تفاوت جی‌کوئری و جاوااسکریپت نام برد، مختصر‌نویسی کدهاست. به‌همین‌دلیل، اکثر توسعه‌دهندگانی که نمی‌دانند چطور باید از جاوااسکریپت استفاده کنند، با jQuery احساس راحتی بیشتری می‌کنند. کدهای کاربرپسند و ساده به شما کمک می‌کند تا خیلی درگیر کدهای طولانی نشوید

jQuery چندان هم بدون مشکل نیست. در‌ادامه، به برخی از معایب جی‌کوئری اشاره خواهیم کرد.

۱. سرعت اندک در‌مقابل JavaScript ساده

یکی از مشکلات مهم سرعت است. هر‌چه به‌عنوان توسعه‌دهنده با استفاده از jQuery راحت‌تر و سریع‌تر می‌توانید کدنویسی کنید، درمقابل کاربران برای استفاده از وب‌سایت شما زمان بیشتری صرف خواهند کرد. در بررسی‌های انجام‌شده، مشخص شد که عملکرد کدهای نوشته‌شده با جاوااسکریپت خالص ممکن است ۱۰ تا ۲۵ برابر سریع‌تر از عملکرد کدهای نوشته‌شده با جی‌کوئری باشد.

۲. ممکن است شما همیشه تازه‌کار باقی بمانید

همان‌طور‌که قبلاً گفتیم، یکی از مزایای استفاده از جی‌کوئری این است که با استفاده از توابع از‌پیش‌تعیین‌شده، می‌توانید طول کدنویسی خود را کاهش دهید. بااین‌حال، این موضوع چاقویی دو‌لبه است؛ چراکه استفاده از توابعی که هیچ نقشی در تولید آن‌ها ایفا نکرده‌اید، می‌تواند شما را از یادگیری مبانی برنامه‌نویسی و توسعه باز‌دارد. به‌عبارت‌دیگر، این خطر همواره وجود دارد که شما به کدنویسی ساده jQuery عادت کنید و هیچ‌وقت به‌سراغ یادگیری عمیق برنامه‌نویسی نروید و در‌نتیجه، همیشه به‌عنوان تازه‌کار شناخته شوید.

۳. الزام به گنجاندن کتابخانه در تمامی صفحات

یکی دیگر از معایب جی‌کوئری این است که لزوماً باید کدهای نوشته‌شده را در تمامی صفحات HTML قرار دهید. در‌ادامه برای مقایسه جاوااسکریپت و جی‌کوئری، دو تکه کد استفاده‌شده در آن‌ها را برای ارسال فرم ایجکس ارائه خواهیم کرد.

نحوه استفاده از جی کوئری

ارسال فرم AJAX با استفاده از jQuery

برای این منظور می‌توان از کدهای زیر استفاده کرد:

$('#contact-form-button').click(function(event){
    event.preventDefault(); // prevent default submit event that would automatically reload webpage
    
    // initalizing variables
    const form = $('#contact-form');
    const url = form.prop('action'); // the url to redirect to "/contact"
    const type = form.prop('method'); // the method "POST" or "GET"
    const data = new FormData(form); // formData object with all key ("id" attribute)-value("user input") pairs
        
    $.ajax({
        url: url,
        type: type,
        data: formData,
        processData: false,
        contentType: false,
        beforeSend: function() {
            // show the preloader (progress bar)
            $('#form-response').html("<div class='progress'><div class='indeterminate'></div></div>");
        },
        complete: function () {
            // hide the preloader (progress bar)
            $('#form-response').html("");
        },
        success: function ( response ){
            // object has been returned from backend
            // object contains key-value pairs in an object
            // these keys 'feedback' and 'content' are set in the backend
            
            if ( !$.trim( response.feedback )) { // empty response from backend
                error_msg = "An empty response was returned.";
            }
            else { // non-empty response
                error_msg = response.feedback;
                
                // load content by 
                $('#form-content').html(response.content);
            }
        },
        error: function(xhr) { // an error occured
            // logging the error
            console.log("error. see details below.");
            console.log(xhr.status + ": " + xhr.responseText);
            
            // returning user-feedback
            error_msg = "An error occured";
        },
    }).done(function() {
        // this part is always executed, even when the AJAX request was not succesfull
        $('#form-response').append(error_msg);
    });
};

// Flask's way of adding a csrf token to the AJAX request
var csrf_token = "{{ csrf_token() }}";

// set the CRSF token in the request headers
$.ajaxSetup({
    beforeSend: function(xhr, settings) {
        if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type) && !this.crossDomain) {
            xhr.setRequestHeader("X-CSRFToken", csrf_token);
        }
    }
});

ارسال فرم AJAX با استفاده از JavaScript خالص

همچنین برای ارسال فرم AJAX با استفاده از جاوااسکریپت خالص، می‌توان به‌صورت زیر کدنویسی کرد:

document.body.addEventListener( 'click', function (event) {
    event.preventDefault(); // prevent default submit event that would automatically reload webpage

    // initializing variables
    const form = event.target.form; // get the form
    const data = new FormData(form); // formData object with all key ("id" attribute)-value("user input") pairs

    const request = new XMLHttpRequest();
    request.open(form.method, form.action, true);
    request.send(data);

    request.addEventListener("load", function () {
        
        const messages = document.getElementById("messages-list");

        if (this.readyState === 4 && this.status === 200) {

            // catch JsonResponse from backend
            const response = JSON.parse(this.responseText);

            // display user-feedback
            messages.innerHTML += response.feedback; // append message to HTML content

            // load content by
            const element = document.getElementById("form-content");
            const section = element.parentNode; // get parent HTML content
            section.removeChild(element); // delete child HTML content
            section.innerHTML = response.content; // paste response HTML content
        }
        else { // error occurred
            // logging the error
            console.log("error. see details below.");
            console.log(xhr.status + ": " + xhr.responseText);
            
            // display user-feedback
            messages.innerHTML += "An error occured, please try again.";
        }
    }
});

کدام را انتخاب کنیم؟ jQuery یا JavaScript ساده؟

قانون نوشته‌شده‌ای وجود ندارد که بتوانید بر‌اساس آن تصمیم بگیرید که در چه مواقعی باید از جی‌کوئری و در چه مواقعی از جاوااسکریپت خالص استفاده کنید. البته اگر تا این‌جا مطلب را دنبال کرده باشید، به برخی از تفاوت‌های اصلی بین جی‌کوئری و جاوااسکریپت نیز پی برده‌اید. به‌عنوان نمونه، حالا دیگر می‌دانید که جی‌کوئری برای دست‌کاری DOM معمولاً عملکردی بهتر از جاوااسکریپت خالص دارد؛ اما سرعت JS ساده به‌مراتب بیشتر از jQuery است. در‌ادامه، فرق بین جی‌کوئری و جاوااسکریپت را از‌نظر معیارهای مختلف ذکر کرده‌ایم.

jQuery JavaScript
کتابخانه جاوااسکریپتی غنی و سبک و با یادگیری ساده زبان برنامه‌نویسی پویا، اما با یادگیری مشکل
در این کتابخانه از چهارچوب‌های زبان جاوااسکریپت برای رسیدگی به Request‌های AJAX، دست‌کاری کدهای CSS، ایجاد انیمیشن‌هایی مانند اسلاید و‌… استفاده می‌شود. زبان برنامه‌نویسی برای ایجاد رابط کاربری کاربرپسند و وب‌سایت‌های داینامیک
با استفاده از توابع از‌پیش‌تعریف‌شده و انجام اصلاحات لازم روی آن‌ها، زمان زیادی را صرفه‌جوبی خواهید کرد. با‌توجه‌به اینکه تمامی کدنویسی‌ها باید از ابتدا انجام شود، ممکن است استفاده از این زبان برنامه‌نویسی برای تازه‌کاران اندکی مشکل باشد.
جی‌کوئری به‌طورکامل با تمامی مرورگرهای رایج کار می‌کند و مشکلات سازگاری در این زمینه وجود ندارد. گاهی اوقات، باید مراقب سازگاری مرورگرهای مختلف با کدهای نوشته‌شده‌تان باشید.
لینک‌های اسکریپت کتابخانه jQuery باید در تگ head تمامی صفحات HTML قرار داده شود. با‌توجه‌به اینکه تمامی مرورگرها از جاوااسکریپت پشتیبانی می‌کنند، به اضافه‌کردن پلاگین اضافی برای استفاده از آن نیازی ندارید.
با استفاده از کدنویسی کوتاه‌تر، همان عملکرد را به‌دست خواهید آورد. خطوط طولانی کد که می‌تواند موجب اسپاگتی کد شود.
سرعت کمتر عملکرد کدهای نوشته‌شده سرعت بسیار زیاد عملکرد درمقایسه‌با jQuery

به‌طورخلاصه، jQuery هنگام استفاده از CMS‌هایی مانند وردپرس به‌دلیل وجود افزونه‌های بسیار زیاد برای آن‌ها، گزینه ایدئال‌تری است. باوجوداین، جی‌کوئری از جاوااسکریپت ساخته شده است؛ به‌همین‌دلیل، حذف کلی JS منطقی به‌نظر نمی‌رسد. اگر می‌خواهید به توسعه‌دهنده فرانت‌اند تبدیل شوید، قطعاً یادگیری JavaScript ساده یکی از کارهای ضروری پیش پای شماست. 

توجه کنید که جاوااسکریپت قطعاً حاکم بلامنازع حوزه Front End است. کتابخانه‌ها و فریم‌ورک‌های بسیار زیادی روی این زبان برنامه‌نویسی نوشته شده است؛ اما همه ما می‌دانیم که این فریم‌ورک‌ها همان‌طورکه آمدنی داشته‌اند، رفتنی هم خواهند داشت و آنچه باقی می‌ماند، اَبَر‌زبان برنامه‌نویسی جاوااسکریپت است.

ارسال فرم با جاوا اسکریپتجمع‌بندی

در گذشته، وب‌سایت‌ها استاتیک بودند. به‌عبارت‌دیگر، هیچ‌چیزی در آن‌ها تغییر نمی‌کرد؛ اما با ورود جاوااسکریپت، عصر جدیدی در برنامه‌نویسی Front End آغاز و ظاهر وب‌سایت‌ها دچار تحولی عظیم شد. دراین‌میان، جاوااسکریپت به‌کمک توسعه‌دهندگان آمد تا بتوانند وب‌سایت‌های داینامیک ایجاد کنند. پس‌از‌آن، jQuery به‌عنوان کتابخانه‌ای متشکل از ابزارهای ایجاد‌شده توسعه‌دهندگان در سراسر جهان به میدان آمد تا کار توسعه‌دهندگان وب را ساده‌تر کند. با‌توجه‌به اینکه تفاوت جی‌کوئری و جاوااسکریپت یکی از سؤالات اساسی توسعه‌دهندگان تازه‌کار یا حتی برخی افراد باتجربه در‌زمینه طراحی وب است، در این مطلب از بلاگ آکادمی ابرها، تلاش کردیم تا فرق جی‌کوئری و جاوااسکریپت را به‌اختصار و به‌طورساده به شما توضیح دهیم.

سؤالات متداول

۱. برنامه‌نویسی Front End به چه معناست؟

هنگامی‌که به وب‌سایتی مراجعه می‌کنید، با منوها، دکمه‌ها، محتوای متنی، عکس‌ها و… روبه‌رو خواهید شد. کار برنامه‌نویس فرانت‌اند این است که محتوای بصری وب‌سایت را همان‌طور‌که طراح UI و UX از او خواسته است، با استفاده از زبان‌های برنامه‌نویسی طراحی کند.

۲. بهترین زبان برای برنامه‌نویسی فرانت‌اند چه زبانی است؟

بهترین و کامل‌ترین زبان برنامه‌نویسی فرانت‌اند جاوااسکریپت است. باوجوداین، کتابخانه‌ها و فریم‌ورک‌هایی نیز برای این زبان برنامه‌نویسی طراحی شده‌اند تا استفاده از آن را راحت‌تر کنند.

۳. جی‌کوئری چیست؟

جی‌کوئری یکی از کتابخانه‌های معروف زبان جاوااسکریپت است که به‌دلیل کوتاه‌بودن کدها و ساده‌بودن یادگیری، با اقبال توسعه‌دهندگان، به‌خصوص افراد تازه‌واردِ این حوزه، روبه‌رو شده است.

۴. آیا می‌توان بدون یادگیری جاوااسکریپت، برنامه‌نویس فرانت‌اند ماهر شد؟

توجه کنید که اگر حتی می‌خواهید از جی‌کوئری برای طراحی وب‌سایت استفاده کنید، بازهم جی‌کوئری کتابخانه‌ای از زبان جاوااسکریپت است. بنابراین، اگر تمام کدنویسی شما به طراحی وب‌سایت با استفاده از وردپرس محدود می‌شود، احتمالاً جی‌کوئری برایتان کافی است. بااین‌حال، اگر قصد دارید به برنامه‌نویس فرانت‌اند یا فول‌استک تبدیل شوید، قطعاً باید جاوااسکریپت را یاد بگیرید.

۵. سرعت عملکرد کدهای جاوااسکریپت بیشتر است یا جی‌کوئری؟

بی‌شک جاوااسکریپت سریع‌تر است؛ زیرا بررسی‌ها نشان می‌دهد که سرعت عملکرد کدهای نوشته‌شده با جاوااسکریپت ساده می‌تواند تا ۲۵ برابر کدهای نوشته‌شده با جی‌کوئری باشد.

اشتراک گذاری:
در تلگرام
کانال ما را دنبال کنید!
در اینستاگرام
ما را دنبال کنید!
Created by potrace 1.14, written by Peter Selinger 2001-2017
در آپارات
ما را دنبال کنید!

دیدگاهتان را بنویسید لغو پاسخ

دسته‌ها
  • برنامه‌ نویسی
  • توسعه و طراحی
  • دسته‌بندی نشده
  • دواپس
  • دیجیتال مارکتینگ
  • زبان‌ های برنامه‌ نویسی
  • فرانت اند
  • کسب‌ و کار آنلاین
  • مهارت‌ های نرم
نوشته‌های تازه
  • آموزش نصب و راه‌اندازی Terraform
  • جاوااسکریپت خالص بهتر است یا جی‌کوئری؟
  • ابزار Terraform چیست و چگونه کار می‌کند؟
  • مقایسه فریم‌ ورک‌ های Angular و React و Vue
  • انگولار چیست؟ معرفی کامل فریم‌ ورک انگولار
درباره آکادمی ابرها

آکادمی ابرها، یک بنگاه آموزشی است که تلاش می‌کند به افراد متخصص یا مستعد در کسب تخصص کسب‌وکارهای آنلاین کمک کند تا چالش‌های کمتر و کسب‌وکاری حرفه‌ای‌تر و روبه‌رشد داشته باشند.

لینک‌های کاربردی
  • بلاگ
  • حساب کاربری من
  • درباره ما
  • سبد خرید
  • تماس با ما
  • فروشگاه
ما کجاییم؟
تهران، سعادت آباد، بلوار دریا، صرافان جنوبی مجوز استفاده از محتوای آکادمی ابرها Creative Commons License

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت