تاریخچه و میراث جی کوئری

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

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

تاریخچه مختصری از جی کوئری

جان ریسیگ (جان رسیگ) اولین نسخه کتابخانه را در سال 2005 ایجاد کرد و منتشر شده در سال 2006-m، در رویدادی به نام BarCampNYC. بر وب سایت رسمی جی کوئری نویسنده نوشت:

جی کوئری یک کتابخانه جاوا اسکریپت بر اساس این شعار است: جاوا اسکریپت باید برای کدنویسی سرگرم کننده باشد. جی کوئری کارهای رایج و تکراری را انجام می دهد، تمام نشانه گذاری های غیر ضروری را حذف می کند و آنها را کوتاه، ظریف و تمیز می کند.

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

// Select every item within the list of people within the contacts element
$('#contacts ul.people li');

با گذشت زمان، مکانیسم انتخاب به یک کتابخانه جداگانه تبدیل شد زوزه.

دومین مزیت کتابخانه این بود که تفاوت های بین مرورگرها را انتزاع می کرد. در آن سال ها نوشتن کدی که بتواند در همه مرورگرها به طور قابل اعتماد کار کند دشوار بود.

فقدان استانداردسازی به این معنی است که توسعه دهندگان باید تفاوت های متعدد بین مرورگرها و موارد لبه را در نظر بگیرند. نگاهی به این کد منبع اولیه جی کوئری و jQuery.browser را جستجو کنید. در اینجا یک مثال است:

// If Mozilla is used
if ( jQuery.browser == "mozilla" || jQuery.browser == "opera" ) {
        // Use the handy event callback
        jQuery.event.add( document, "DOMContentLoaded", jQuery.ready );

// If IE is used, use the excellent hack by Matthias Miller
// http://www.outofhanwell.com/blog/index.php?title=the_window_onload_problem_revisited
} else if ( jQuery.browser == "msie" ) {

        // Only works if you document.write() it
        document.write("<scr" + "ipt id=__ie_init defer=true " + 
                "src=javascript:void(0)></script>");

        // Use the defer script hack
        var script = document.getElementById("__ie_init");
        script.onreadystatechange = function() {
                if ( this.readyState == "complete" )
                        jQuery.ready();
        };

        // Clear from memory
        script = null;

// If Safari  is used
} else if ( jQuery.browser == "safari" ) {
        // Continually check to see if the document.readyState is valid
        jQuery.safariTimer = setInterval(function(){
                // loaded and complete are both valid states
                if ( document.readyState == "loaded" || 
                        document.readyState == "complete" ) {

                        // If either one are found, remove the timer
                        clearInterval( jQuery.safariTimer );
                        jQuery.safariTimer = null;

                        // and execute any waiting functions
                        jQuery.ready();
                }
        }, 10);
}

و به لطف jQuery، توسعه‌دهندگان می‌توانند نگرانی‌های مربوط به تمام این مشکلات را به دوش تیم توسعه‌دهنده کتابخانه منتقل کنند.

بعدها، jQuery پیاده‌سازی فناوری‌های پیچیده‌تر مانند انیمیشن‌ها و Ajax را آسان‌تر کرد. کتابخانه عملاً به یک وابستگی استاندارد برای وب سایت ها تبدیل شده است. و امروزه سهم بزرگی از اینترنت را تامین می کند. W3Techs معتقد است امروزه 74 درصد از سایت ها از jQuery استفاده می کنند.

کنترل توسعه jQuery نیز رسمی تر شده است. در سال 2011 تیم jQuery Board ایجاد کرد. و در سال 2012 jQuery Board به بنیاد جی کوئری تبدیل شد.

در سال 2015، بنیاد جی کوئری با بنیاد دوجو ادغام شد. برای ایجاد JS Foundation، که سپس با Node.js Foundation ادغام شد 2019-m برای ایجاد بنیاد OpenJS، که در آن jQuery یکی از "پروژه های پیشرفت»

تغییر شرایط

با این حال، در سال های اخیر جی کوئری محبوبیت خود را از دست داد. GitHub کتابخانه را از قسمت جلوی سایت من حذف کرد. بوت استرپ نسخه 5 از جی کوئری خلاص شویدچون مال اوست"بزرگترین وابستگی مشتری برای جاوا اسکریپت معمولی(در حال حاضر 30 کیلوبایت اندازه، کوچک شده و بسته بندی شده است). چندین روند در توسعه وب، موقعیت جی کوئری را به عنوان یک ابزار ضروری تضعیف کرده است.

مرورگرها

به چند دلیل، تفاوت ها و محدودیت های مرورگر اهمیت کمتری پیدا کرده است. اول، استانداردسازی بهبود یافته است. توسعه دهندگان بزرگ مرورگرها (اپل، گوگل، مایکروسافت و موزیلا) برای توسعه با هم کار می کنند استانداردهای وب در چارچوب کارگروه فناوری کاربردی ابرمتن وب.
اگرچه مرورگرها هنوز از چندین جهت مهم با یکدیگر متفاوت هستند، فروشندگان حداقل ابزاری برای جستجو و ایجاد یک پایگاه داده مشترک به جای جستجو دارند. جنگ دائمی با یکدیگر. بر این اساس، APIهای مرورگرها قابلیت های جدیدی به دست آورده اند. به عنوان مثال، واکشی API قادر به جایگزینی توابع Ajax از jQuery:

// jQuery
$.getJSON('https://api.com/songs.json')
    .done(function (songs) {
        console.log(songs);
    })

// native
fetch('https://api.com/songs.json')
    .then(function (response) {
        return response.json();
    })
    .then(function (songs) {
        console.log(songs);
    });

روش ها querySelector и querySelectorAll انتخابگرهای تکراری jQuery:

// jQuery
const fooDivs = $('.foo div');

// native
const fooDivs = document.querySelectorAll('.foo div');

اکنون می توانید با استفاده از کلاس های عنصر را دستکاری کنید کلاس لیست:

// jQuery
$('#warning').toggleClass('visible');

// native
document.querySelector('#warning').classList.toggle('visible');

این سایت ممکن است به jQuery نیاز نداشته باشید در اینجا چند موقعیت دیگر وجود دارد که در آن کد jQuery را می توان با کد بومی جایگزین کرد. برخی از توسعه دهندگان همیشه از jQuery استفاده می کنند، زیرا آنها به سادگی از API های جدید اطلاعی ندارند، اما زمانی که می دانند، کمتر شروع به استفاده از کتابخانه می کنند.

استفاده از ویژگی های بومی عملکرد صفحه را بهبود می بخشد. زیاد جلوه های انیمیشن از جی کوئری اکنون می توانید پیاده سازی کنید بسیار موثرتر با استفاده از CSS

دلیل دوم این است که مرورگرها بسیار سریعتر از قبل به روز می شوند. اکثر آنها استفاده می کنند استراتژی نوسازی "همیشه سبز".، به استثنای Apple Safari. آنها را می توان در پس زمینه بدون دخالت کاربر به روز کرد و به به روز رسانی سیستم عامل وابسته نیست.

این بدان معناست که ویژگی‌های جدید مرورگر و رفع اشکال بسیار سریع‌تر توزیع می‌شوند و توسعه‌دهندگان مجبور نیستند تا زمانی که می توانم استفاده کنم به سطح قابل قبولی خواهد رسید. آنها می توانند با اطمینان از ویژگی ها و API های جدید بدون دانلود jQuery یا polyfills استفاده کنند.

دلیل سوم این است که اینترنت اکسپلورر به وضعیت بی ربط کامل نزدیک می شود. اینترنت اکسپلورر مدت هاست که بلایای توسعه وب در سراسر جهان بوده است. اشکالات آن بسیار گسترده بود، و چون اینترنت اکسپلورر در دهه 2000 تسلط داشت و از استراتژی به‌روزرسانی همیشه سبز استفاده نمی‌کرد، نسخه‌های قدیمی‌تر هنوز رایج هستند.

در سال 2016، مایکروسافت از کار انداختن اینترنت اکسپلورر تسریع کرد. توقف حمایت نسخه دهم و قبل از آن، پشتیبانی از IE 11 را محدود می کند. و به طور فزاینده ای، توسعه دهندگان وب این تجمل را دارند که سازگاری IE را نادیده بگیرند.

حتی jQuery از IE 8 و پایین‌تر پشتیبانی نمی‌کند نسخه 2.0، منتشر شده در سال 2013. و اگرچه در برخی موارد پشتیبانی اینترنت اکسپلورر هنوز مورد نیاز است، به عنوان مثال، در سایت های قدیمی تر، این شرایط کمتر و کمتر اتفاق می افتد.

چارچوب های جدید

از زمان ظهور jQuery، فریمورک های زیادی از جمله رهبران مدرن ایجاد شده است واکنش نشان می دهند, گوشه دار и VUE. آنها دو مزیت مهم نسبت به jQuery دارند.

اول، آنها جداسازی رابط کاربری را به اجزاء آسان می کنند. فریم‌ورک‌ها برای مدیریت و به‌روزرسانی صفحه طراحی شده‌اند. و jQuery معمولا فقط برای به روز رسانی استفاده می شود و وظیفه ارائه صفحه اولیه را به سرور واگذار می کند.

از سوی دیگر، کامپوننت‌های React، Angular و Vue به شما این امکان را می‌دهند که HTML، کد و حتی CSS را به‌طور محکم جفت کنید. همانطور که ما پایه کد را به بسیاری از توابع و کلاس های مستقل تقسیم می کنیم، توانایی تقسیم رابط به اجزای قابل استفاده مجدد ساخت و نگهداری سایت های پیچیده را آسان تر می کند.

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

در jQuery، شما به صراحت مراحل انجام هر گونه تغییر را یادداشت می کنید. و در یک چارچوب اعلامی می گویید، "طبق این داده ها، رابط باید به این شکل باشد." این می تواند نوشتن کدهای بدون اشکال را بسیار آسان تر کند.

توسعه دهندگان رویکردهای جدیدی را برای توسعه وب سایت اتخاذ کرده اند، به همین دلیل محبوبیت jQuery کاهش یافته است.

چه زمانی از jQuery استفاده کنیم؟

بنابراین، هنگامی که باید از jQuery استفاده کنید؟

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

من در چنین شرایطی بوده ام، وقتی تلاش می کنم هر تغییری ایجاد کنم، احساس می کنم کار سختی است. شما نمی توانید مطمئن باشید که چیزی را خراب نمی کنید زیرا انتخابگرهای jQuery به ساختار HTML تولید شده توسط سرور بستگی دارند.

در انتهای دیگر مقیاس، سایت های ساده ای قرار دارند که فقط به کمی تعامل یا محتوای پویا نیاز دارند. در این موارد نیز jQuery را پیش‌فرض نمی‌کنم، زیرا کارهای بسیار بیشتری می‌توانید با APIهای بومی انجام دهید.

حتی اگر به چیزی قدرتمندتر نیاز داشته باشم، به دنبال یک کتابخانه تخصصی می گردم، به عنوان مثال. آکسیوس برای آژاکس یا Animate.css برای انیمیشن ها این آسان تر از بارگیری تمام jQuery برای یک عملکرد کوچک خواهد بود.

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

رویکرد امری به خوبی مقیاس پذیر نیست، اما یادگیری آن آسان تر از رویکرد اعلامی سایر کتابخانه ها است. برای سایتی که به وضوح قابلیت های محدودی دارد، بهتر است از jQuery استفاده کنید و با آرامش کار کنید: کتابخانه نیازی به مونتاژ یا کامپایل پیچیده ندارد.

علاوه بر این، جی کوئری خوب است اگر مطمئن باشید که سایت شما با گذشت زمان پیچیده نخواهد شد و اگر به عملکرد بومی اهمیتی نمی دهید، که مطمئناً نیاز به نوشتن کد بیشتری نسبت به جی کوئری دارد.

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

اکتشاف

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

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

برخی از مردم سرعت منسوخ شدن ابزارهای توسعه وب را دوست ندارند، اما برای من این نشانه پیشرفت سریع است. jQuery به ما این امکان را داده است که بسیاری از کارها را بهتر انجام دهیم. در مورد جانشینان او نیز همینطور است.

منبع: www.habr.com

اضافه کردن نظر