جی کوئری -
اما در سال های اخیر، وضعیت آن به عنوان ابزار برتر برای توسعه وب فرسوده شده است. بیایید ببینیم که چرا jQuery محبوب شد و چرا از مد افتاد و همچنین در چه مواردی هنوز توصیه می شود از آن برای ایجاد وب سایت های مدرن استفاده کنید.
تاریخچه مختصری از جی کوئری
جان ریسیگ (
جی کوئری یک کتابخانه جاوا اسکریپت بر اساس این شعار است: جاوا اسکریپت باید برای کدنویسی سرگرم کننده باشد. جی کوئری کارهای رایج و تکراری را انجام می دهد، تمام نشانه گذاری های غیر ضروری را حذف می کند و آنها را کوتاه، ظریف و تمیز می کند.
جی کوئری دو مزیت اصلی دارد. اولین API مناسب برای دستکاری صفحات وب است. به ویژه، روش های قدرتمندی برای انتخاب عناصر ارائه می دهد. نه تنها می توانید بر اساس ID یا کلاس انتخاب کنید، jQuery به شما امکان می دهد عبارات پیچیده بنویسید، به عنوان مثال، عناصر را بر اساس روابط آنها با عناصر دیگر انتخاب کنید:
// Select every item within the list of people within the contacts element
$('#contacts ul.people li');
با گذشت زمان، مکانیسم انتخاب به یک کتابخانه جداگانه تبدیل شد
دومین مزیت کتابخانه این بود که تفاوت های بین مرورگرها را انتزاع می کرد. در آن سال ها نوشتن کدی که بتواند در همه مرورگرها به طور قابل اعتماد کار کند دشوار بود.
فقدان استانداردسازی به این معنی است که توسعه دهندگان باید تفاوت های متعدد بین مرورگرها و موارد لبه را در نظر بگیرند. نگاهی به
// 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 معتقد است
کنترل توسعه jQuery نیز رسمی تر شده است. در سال 2011 تیم
در سال 2015، بنیاد جی کوئری با بنیاد دوجو ادغام شد.
تغییر شرایط
با این حال، در سال های اخیر جی کوئری
مرورگرها
به چند دلیل، تفاوت ها و محدودیت های مرورگر اهمیت کمتری پیدا کرده است. اول، استانداردسازی بهبود یافته است. توسعه دهندگان بزرگ مرورگرها (اپل، گوگل، مایکروسافت و موزیلا) برای توسعه با هم کار می کنند
اگرچه مرورگرها هنوز از چندین جهت مهم با یکدیگر متفاوت هستند، فروشندگان حداقل ابزاری برای جستجو و ایجاد یک پایگاه داده مشترک به جای جستجو دارند.
// 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);
});
روش ها
// jQuery
const fooDivs = $('.foo div');
// native
const fooDivs = document.querySelectorAll('.foo div');
اکنون می توانید با استفاده از کلاس های عنصر را دستکاری کنید
// jQuery
$('#warning').toggleClass('visible');
// native
document.querySelector('#warning').classList.toggle('visible');
این سایت
استفاده از ویژگی های بومی عملکرد صفحه را بهبود می بخشد. زیاد
دلیل دوم این است که مرورگرها بسیار سریعتر از قبل به روز می شوند. اکثر آنها استفاده می کنند
این بدان معناست که ویژگیهای جدید مرورگر و رفع اشکال بسیار سریعتر توزیع میشوند و توسعهدهندگان مجبور نیستند تا زمانی که
دلیل سوم این است که اینترنت اکسپلورر به وضعیت بی ربط کامل نزدیک می شود. اینترنت اکسپلورر مدت هاست که بلایای توسعه وب در سراسر جهان بوده است. اشکالات آن بسیار گسترده بود، و چون اینترنت اکسپلورر در دهه 2000 تسلط داشت و از استراتژی بهروزرسانی همیشه سبز استفاده نمیکرد، نسخههای قدیمیتر هنوز رایج هستند.
در سال 2016، مایکروسافت از کار انداختن اینترنت اکسپلورر تسریع کرد.
حتی jQuery از IE 8 و پایینتر پشتیبانی نمیکند
چارچوب های جدید
از زمان ظهور jQuery، فریمورک های زیادی از جمله رهبران مدرن ایجاد شده است
اول، آنها جداسازی رابط کاربری را به اجزاء آسان می کنند. فریمورکها برای مدیریت و بهروزرسانی صفحه طراحی شدهاند. و jQuery معمولا فقط برای به روز رسانی استفاده می شود و وظیفه ارائه صفحه اولیه را به سرور واگذار می کند.
از سوی دیگر، کامپوننتهای React، Angular و Vue به شما این امکان را میدهند که HTML، کد و حتی CSS را بهطور محکم جفت کنید. همانطور که ما پایه کد را به بسیاری از توابع و کلاس های مستقل تقسیم می کنیم، توانایی تقسیم رابط به اجزای قابل استفاده مجدد ساخت و نگهداری سایت های پیچیده را آسان تر می کند.
مزیت دوم این است که چارچوبهای جدیدتر به یک پارادایم اعلامی پایبند هستند، که در آن توسعهدهنده توصیف میکند که رابط باید چگونه باشد و انجام تمام تغییرات لازم برای دستیابی به آنچه مورد نظر است را به چارچوب واگذار میکند. این رویکرد برخلاف رویکرد امری است که کد jQuery را مشخص می کند.
در jQuery، شما به صراحت مراحل انجام هر گونه تغییر را یادداشت می کنید. و در یک چارچوب اعلامی می گویید، "طبق این داده ها، رابط باید به این شکل باشد." این می تواند نوشتن کدهای بدون اشکال را بسیار آسان تر کند.
توسعه دهندگان رویکردهای جدیدی را برای توسعه وب سایت اتخاذ کرده اند، به همین دلیل محبوبیت jQuery کاهش یافته است.
چه زمانی از jQuery استفاده کنیم؟
بنابراین، هنگامی که باید از jQuery استفاده کنید؟
اگر پیچیدگی پروژه افزایش می یابد، بهتر است با کتابخانه یا چارچوب دیگری شروع کنید که به شما امکان می دهد پیچیدگی را به طور معناداری مدیریت کنید. به عنوان مثال، رابط را به اجزاء تقسیم کنید. استفاده از jQuery در چنین سایتهایی ممکن است در ابتدا خوب به نظر برسد، اما به سرعت به کد اسپاگتی منجر میشود که در آن مطمئن نیستید کدام قطعه روی قسمتی از صفحه تأثیر میگذارد.
من در چنین شرایطی بوده ام، وقتی تلاش می کنم هر تغییری ایجاد کنم، احساس می کنم کار سختی است. شما نمی توانید مطمئن باشید که چیزی را خراب نمی کنید زیرا انتخابگرهای jQuery به ساختار HTML تولید شده توسط سرور بستگی دارند.
در انتهای دیگر مقیاس، سایت های ساده ای قرار دارند که فقط به کمی تعامل یا محتوای پویا نیاز دارند. در این موارد نیز jQuery را پیشفرض نمیکنم، زیرا کارهای بسیار بیشتری میتوانید با APIهای بومی انجام دهید.
حتی اگر به چیزی قدرتمندتر نیاز داشته باشم، به دنبال یک کتابخانه تخصصی می گردم، به عنوان مثال.
من فکر می کنم بهترین دلیل برای استفاده از jQuery این است که عملکردهای جامعی را برای قسمت جلویی یک وب سایت فراهم می کند. به جای یادگیری انواع API های بومی یا کتابخانه های تخصصی، می توانید فقط اسناد jQuery را بخوانید و فوراً سازنده شوید.
رویکرد امری به خوبی مقیاس پذیر نیست، اما یادگیری آن آسان تر از رویکرد اعلامی سایر کتابخانه ها است. برای سایتی که به وضوح قابلیت های محدودی دارد، بهتر است از jQuery استفاده کنید و با آرامش کار کنید: کتابخانه نیازی به مونتاژ یا کامپایل پیچیده ندارد.
علاوه بر این، جی کوئری خوب است اگر مطمئن باشید که سایت شما با گذشت زمان پیچیده نخواهد شد و اگر به عملکرد بومی اهمیتی نمی دهید، که مطمئناً نیاز به نوشتن کد بیشتری نسبت به جی کوئری دارد.
همچنین در صورت نیاز به پشتیبانی از نسخه های قدیمی IE می توانید از این کتابخانه استفاده کنید. سپس جی کوئری مانند روزهایی که اینترنت اکسپلورر محبوب ترین مرورگر بود، به شما خدمت می کند.
اکتشاف
jQuery به این زودی ناپدید نخواهد شد. او
مگر اینکه عملکرد جی کوئری به طور قابل توجهی تغییر کند، احتمالاً استفاده از کتابخانه در چند سال آینده به آرامی اما به طور پیوسته کاهش خواهد یافت. وب سایت های جدید از همان ابتدا با استفاده از چارچوب های مدرن تر ساخته می شوند و موارد استفاده مناسب برای jQuery به طور فزاینده ای نادر می شوند.
برخی از مردم سرعت منسوخ شدن ابزارهای توسعه وب را دوست ندارند، اما برای من این نشانه پیشرفت سریع است. jQuery به ما این امکان را داده است که بسیاری از کارها را بهتر انجام دهیم. در مورد جانشینان او نیز همینطور است.
منبع: www.habr.com