bhavyasaggi.github.io
Sitemap

Workers

Web Workers

Write your own web-worker to assist with CPU intensive tasks, and may use following libraries to assist:

Example:

// main.js
const worker = new Worker("worker.js");
worker.postMessage({ data: largeArray });
worker.onmessage = (e) => console.log("Result:", e.data);
// worker.js
self.onmessage = (e) => {
  const result = heavyComputation(e.data.data);
  self.postMessage(result);
};

Read more: https://web.dev/articles/workers-overview

Service Workers

Write your own service-worker, or generate a using a libraries such as:

Example:

// Register service worker
if ("serviceWorker" in navigator) {
  navigator.serviceWorker.register("/sw.js");
}

// sw.js - Cache strategies
self.addEventListener("fetch", (event) => {
  if (event.request.destination === "image") {
    event.respondWith(
      caches
        .match(event.request)
        .then((response) => response || fetch(event.request))
    );
  }
});

PWA

With inclusion of a webmanifest and service-worker, an application becomes eligible for PWA.
But there are few other checklist items it needs to cover before it is 'installable'.

Instead of a browser provided installation prompt, a webapp can provide custom interface by hijacking beforeinstallprompt event. Read more: https://web.dev/learn/pwa/installation-prompt

Read More: https://web.dev/explore/progressive-web-apps