April 28
SPA applicationlarni tezligini oshiramiz
Frontend Developer sifatida ancha yillardan beri ishlab kelib juda ko'plab SPA, SSR va SSG applicationlarni ishlab chiqqanman va xar doim ularni maksimal darajada user uchun tez va sifatli ishlab chiqishga try qilib kelganman.
Nega performance oshirish juda muhim ?
Statistik malumotlarga qaraganda site loading 3 sekundan oshib ketsa 53% mobile userlar sizni saytizdan chiqib ketishiga sababchi bo'lar ekan va biznes uchun juda kotta yo'qotishlarga olib kelishi mumkun. SEO tarafdan ham sitening tezligi uning search qismda yuqoriga ko'tarilishiga ham yordam beradi.
O'zi yana qanday muammolarga duch kelishimiz mumkun, keling shuni ko'rib chiqamiz:
- Loading - SPA da asosan JavaScript initial ( boshlashg'ich ) tashrif buyurishda yuklanishi sababli muammolar kelib chiqishi mumkun va tezlikning pasayishi user network speed ga ham bog'liq
- Rendering and Updating - Tez va optimizatsiya qilinmagan re-renderlar application ni sekinlashishiga olib keladi ayniq complex ( qiyin va kotta ) hisoblashlar bor joylarda
- API - SPA va shu kabi type applicationlarda API lar bilan ishlash ko'pligi sababli cache qilinmagan requestlar va debounce ( search qismga ) ishlatilmagan xolatlarda application performance ga tasir ko'rsatadi
- Client Side - SPA lar client side bo'lib asosan device resurslariga bog'liq yani agar ozgina eskiroq yoki kuchsizroq model bo'lsa Js bilan manipulatsiya joylarda ( animation va etc ) sezilarli darajada muammolarga duch kelishimiz mumkun
Bu muammolarni qanday qilib hal qilishimiz mumkun, keling ko'rib chiqamiz:
- Code Splitting - yozilgan va yozilayotkan code larni kotta emas kichik kichik componentlarga bo'lish va Tree Shaking dan foydalanish
- Lazy Loading - Componentlarni kerak xolatda yuklash va Suspense orqali lazy load qilish, img taglarga lazy attribute ni qo'shish yoki Intersection Observer foydalanish
- Efficient Rendering - keraksiz qayta renderlashlarni oldini olish, yani useMemo, useCallback, memo lardan, agar Vue bo'lsa computed, keep-alive lardan foydalanish, state o'zgarishlarni control qilish yani local statelardan foydalanish
- Optimization of Network requests - qayta va kam update bo'ladigan joylarda Caching ( React/Vue query ) larni ishlatish va Search qismda debouncing/throttling lardan foydalanish
- Web Workers - complex calculations ( og'ir va kotta hisoblashlar ) bor joylarda Web Workerlardan foydalanish
Umuman olganda optimization bilan shug'ullanish bu sizni developer skillaringizni oshirishga ham yordam beradi. Code yozishdan oldin aniq bilasizki bu code unoptimized va ertaga muammo kelib chiqarishi mumkunligini, shu sababdan yuqorida aytib o'tilgan metodlardan foydalaning va o'z ustingizda ishlashdan to'htamang.
Happy Coding 🥳
https://tirikchilik.uz/@sheyxuz