Bosh sahifa Wiki PWA

PWA

PWA — web texnologiyalar asosida yaratilgan, ammo install, offline ishlash, background capability va native applicationga yaqin tajriba bera oladigan web application yondashuvi. To‘liq nomi Progressive Web App.

PWA alohida bitta framework emas. U HTTPS, Web App Manifest, Service Worker va responsive web imkoniyatlarining kombinatsiyasidir.

Progressive tamoyil

“Progressive” tushunchasi application turli browser va qurilmada mavjud capability darajasiga qarab ishlashini anglatadi.

Asosiy content oddiy web sifatida ochiladi.

Qo‘llab-quvvatlovchi platformalarda qo‘shimcha imkoniyatlar:

  • install;
  • offline;
  • push;
  • background sync;
  • file handlingga oid integratsiya

paydo bo‘lishi mumkin.

Web App Manifest

Manifest JSON formatidagi metadata fayli.

U quyidagilarni belgilashi mumkin:

  • application nomi;
  • qisqa nom;
  • icon;
  • start URL;
  • display mode;
  • theme color;
  • background color;
  • orientation;
  • scope.

Browser install qilingan applicationni qanday ko‘rsatishni shu ma’lumotdan oladi.

Service Worker

Service Worker web page’dan alohida background contextda ishlaydigan script.

U:

  • requestlarni intercept qilish;
  • cache;
  • offline response;
  • push event;
  • background syncga oid imkoniyat;
  • update lifecycle

bilan ishlaydi.

U DOMga bevosita kira olmaydi.

HTTPS

Service Worker kuchli network controlga ega bo‘lgani sabab secure context talab qiladi.

Production PWA HTTPS orqali tarqatiladi.

Local development uchun ayrim browser localhostga maxsus ishonch beradi.

TLS certificate va origin xavfsizligi muhim.

Install

Browser application install kriteriyalariga mosligini baholashi mumkin.

User PWA’ni home screen, start menu yoki application listga qo‘shadi.

Install qilingan PWA alohida window’da ochilishi va browser chrome’ini kamaytirishi mumkin.

Platformalar kriteriy va UI bo‘yicha farq qiladi.

Display mode

Manifest display mode application oynasining ko‘rinishini belgilaydi.

Variantlar:

  • browser;
  • standalone;
  • minimal-ui;
  • fullscreen;
  • window-controls-overlayga oid variantlar.

Fallback zanjiri platforma capability’siga bog‘liq.

Offline

Service Worker cache’dan HTML, CSS, JavaScript va data qaytarishi mumkin.

Offline strategiyalar:

Har resource uchun bir xil strategiya ishlatilmaydi.

App shell

App shell — navigation, layout va asosiy UI uchun minimal static resurslar.

U cache qilinib tez ochiladi.

Dynamic content keyin network yoki local storage’dan olinadi.

Shell eski bo‘lib qolmasligi uchun version va update lifecycle kerak.

Cache version

Yangi release’da cache nomi yoki manifest yangilanadi.

Service Worker install bosqichida yangi assetlarni oladi.

Activate bosqichida eski cache’lar tozalanishi mumkin.

Barcha tablar eski worker’dan yangisiga darhol o‘tmasligi mumkin.

Update lifecycle

Service Worker odatda backgroundda yangi versiyani tekshiradi.

Yangi worker waiting holatida qolishi mumkin, chunki eski sahifalar oldingi worker bilan boshqarilmoqda.

Application userga update mavjudligini ko‘rsatishi yoki xavfsiz reload jarayonini boshqarishi mumkin.

Push notification

Push service serverdan browser yoki OSga notification signalini yetkazadi.

User permissioni talab qilinadi.

Notification:

  • muhim;
  • kam;
  • user kutgan;
  • opt-in

bo‘lishi kerak.

Ortiqcha push userning permissionni o‘chirishiga olib keladi.

Background sync

Network yo‘q paytda bajarilmagan operation keyinroq qayta yuborilishi mumkin.

Masalan, form yoki message queue.

Operation idempotent bo‘lishi va ayni request ikki marta yuborilishiga tayyor turishi kerak.

Platforma background executionni energiya va policy sabab cheklashi mumkin.

Local data

PWA offline data uchun IndexedDB yoki boshqa browser storage’dan foydalanishi mumkin.

Sensitive data:

  • encryption;
  • device sharing;
  • logout cleanup;
  • quota;
  • expiration

bilan boshqariladi.

Browser storage doimiy server database o‘rnini to‘liq bosmaydi.

Responsive design

PWA telefon, planshet va desktop ekranlariga moslashadi.

Touch target, keyboard, safe area va orientation hisobga olinadi.

Install imkoniyati responsive va accessible interface bo‘lmasa sifatli tajriba bermaydi.

PWA va native application

PWA web orqali yangilanadi va ko‘p platformada bitta codebase ishlatishi mumkin.

Native application ayrim device API, background capability va store integratsiyasida kengroq accessga ega.

Platforma capability farqlari project talabiga qarab baholanadi.

PWA va SPA

PWA SPA bo‘lishi mumkin, lekin shart emas.

MPA ham manifest va service worker bilan PWA xususiyatlarini olishi mumkin.

PWA delivery va platform capabilityga, SPA esa navigatsiya architecture’iga tegishli.

Installability

PWA install bo‘lishi faqat manifest mavjudligiga bog‘liq emas. Browser secure origin, valid icon, start URL, service worker va user engagementga oid o‘z kriteriyalarini qo‘llashi mumkin. Platformalar install bannerini boshqa usulda ko‘rsatadi, shu sababli web application install bo‘lmasa ham normal browser rejimida ishlashda davom etadi.

Storage quota

Cache, IndexedDB va boshqa storage qurilma quota’siga bo‘ysunadi. Browser pressure holatida ayrim data’ni o‘chirishi mumkin. Muhim server data faqat local storage’da yagona nusxa sifatida saqlanmaydi.

Offline mutation

Offline yozuvlar queue’da turganda serverdagi ayni obyekt boshqa qurilmadan o‘zgargan bo‘lishi mumkin. Sync vaqtida version va conflict policy ishlatiladi.

Standalone session

Install qilingan PWA browser tabidan alohida oynada ishlashi mumkin. Login cookie va origin bir xil bo‘lsa session umumiy bo‘lishi ehtimoli bor. Platforma navigatsiya va tashqi linklarni boshqa window’da ochishi mumkin.

Bog‘liq tushunchalar

Progressive Web App, Service Worker, Web App Manifest, Offline, Cache API, Push notification, Background Sync, Responsive design, SPA, IndexedDB