چرا JQuery انتخاب خوبی نیست ؟

تو این مقاله سعی دارم درباره اینکه چرا JQuery انتخاب خوبی نیست صحبت کنم‌. (منظورم این نیست که JQuery کتابخونه خوبی نیست، بلکه فقط انتخاب خوبی نیست.)


چرا JQuery انتخاب خوبی بود ؟

سال‌ها پیش برای ساخت وب سایت فقط کافی بود HTML و CSS رو بدونید، گاهی وقت‌ها برای انجام کار‌های عجیب و غریب (استفاده از Ajax داخل نوار جستجو) شروع می‌کردیم به JavaScript کد زدن. کار با DOM داخل JavaScript خیلی سخت بود و کدی که شما می‌نوشتید داخل همه مرورگر‌ها اجرا نمی‌شد.

اینجا بود که JQuery اومد تمام کثیف کاری‌هایی که لازم بود تا شما برای یک‌کار ساده انجام بدید رو تو خودش هندل کرد و شما فقط با دستورات JQuery کار می‌کردید.

مثال خیلی ساده میشه Ajax زدن با JavaScript

https://gist.github.com/nimaa77/ac80893194c5ad58b534858743d48060

کد مشابه در Jquery

https://gist.github.com/nimaa77/8676d1a19a3886e273df37b2598ff45a

در عمل داخل کتابخونه Jquery همون قطعه کد اولی رو داخل متد post آبجکت $ ریخته، و کلی راحت کرده مارو.
خب Jquery خیلی ساده هستش از طرف دیگه رو تمام مرورگر‌ها کار میکنه و مهم‌تر از همه کلی کتابخونه داره که خیلی از کار‌هارو ساده تر میشه باهاش انجام داد (مثلا: bootstrap.js).

انقلاب جاوا اسکریپت

جاوااسکریپت طوری بود، که فقط بود (بر گردید اول جمله با مکث زیاد بخونید) تا JQuery رو Load کنه، دیگه کلا به هرکی می‌گفتی سایت رو با چی‌زدی می‌گفت bootstrap و JQuery.

موضوع تا جایی پیش رفت که UI و UX مطرح شد و از اون طرف دستگاه‌های کوچیک به نام SmartPhone با حافظه و قدرت پردازشی خیلی کمتر نسبت به رایانه‌های شخصی داشتند به بازار اومدند و نمی‌شد هرکاری رو با اونا انجام داد. (یا اگر می‌شد خیلی طول می‌کشید و کاربر خسته می‌شد و صفحه رو ‌می‌بست یا از انجام اون‌کار منصرف می‌شد. Poor UX)

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

مشکل اینجا بود که کسی با این مبحث آشنا نبود و هنوزم خیلی‌ها نیستند سعی می‌کنن مشکل رو با همین تکنیک‌های ۱۵ سال پیش حل کنن.
مثال Ajax زدن در Modern JavaScript

https://gist.github.com/nimaa77/abe2022d18f6ba3652b33c89a53667e9
(کد بالا خیلی از لحاظ performance از نمونه‌های قبلی بهتره)

اینجاست که JQuery دیگه اون مشکل قبلی رو نمی‌تونه حل بکنه چون خود JavaScript اومد مشکلات رو حل کرد و دیگه مشکلی وجود نداره :)

حتی خیلی از کسایی که می‌شناسم از JQuery فقط برای انتخاب المان‌ها استفاده می‌کنن و خیلی خوشحال هستند که با زدن کلمه $ و دو تا پرانتز می‌تونن به یک آبجکت reference بزنن. ولی اگر JavaScript بلد باشید می‌دونید که میشه همون کار رو با JavaScript انجام داد (همون کاری که JQuery کرده رو باز نویسی کنیم).

https://gist.github.com/nimaa77/d0075be335dfb0643455381b5c7ab981


و سایت‌های شما می‌تونه 84,522 KB حجم کمتری داشته باشه که و کد کمتری parse بشه و در آخر کار کمتری انجام بشه (نکته SEO: جدا از دانلود شدن فایل Jquery قسمت parse شدن رو موبایل و دستگاه‌های ضعیف زمان زیادی رو می‌گیره و باعث میشه سایت شما کند بشه و کاربر از استفاده نرم‌افزار شما خوشحال نباشه. کاربر خوشحال نباشه گوگل هم خوشحال نیست پس سعی می‌کنه صفحاتی رو به کاربر معرفی کنه که کاربر خودش رو خوشحال نگه داره)

دیگه هیچ کتابخونه استفاده نکنیم ؟

خیر، بر حسب نیاز باید از کتابخونه‌های متخلف استفاده کنید تا کار شما سریعتر پیش بره کار انجام بشه. ولی باید ببینید کدوم مشکل رو قراره حل کنید برای مثال اگر قراره کلی Chart نشون بدید خب از یه چیزی مثل D3.js استفاده می‌کنیم.

یک مثال کلی‌تر رو میشه با React یا Vue بررسی کرد، که علاوه بر Performance بالایی که دارن باعث می‌شن سریعتر کد بزنید، تمیز کد بزنید و راحت کدتون رو تغییر بدید.
یکی از مشکلات صفحات وب قسمت render شدن هستش که خیلی کنده و این کتابخونه‌ها با راه کار‌هایی که دارن (VirtualDOM) این مشکل رو تا حد زیادی بر طرف می‌کنن.
react و vue هم به سرونشت JQuery دچار می‌شن اگر مرورگر‌ها یک روز بتونن خیلی سریع صفحات رو render کنن.


خب اینم از این :)
مقالات مشابه

You Truly Don’t Need jQuery

اگر سوالی داشتید یا چیزی رو از قلم انداخته بودم خوشحال می‌شم بدونم و بتونم کمکتون کنم، پس حتما نظر بدید و بخش نظرات رو هم بخونید.