Angular Service Worker হল একটি শক্তিশালী টুল যা Progressive Web App (PWA) তৈরি করতে ব্যবহৃত হয়। এটি মূলত অ্যাপ্লিকেশনকে অফলাইনে কাজ করতে সাহায্য করে, ব্যাকগ্রাউন্ডে ডেটা লোড করে, এবং অন্যান্য নেটওয়ার্ক রিকোয়েস্ট পরিচালনা করে। Service Worker ব্যবহার করে আপনি ব্যাকগ্রাউন্ডে ডেটা ফেচিং করতে পারেন, যা অ্যাপ্লিকেশনের পারফরম্যান্স উন্নত করতে সহায়তা করে।
এখানে আমরা Angular Service Worker ব্যবহার করে Background Data Fetching কিভাবে করতে হয় তা দেখব। এই প্রক্রিয়ায়, আমরা Service Worker কে ব্যাকগ্রাউন্ড ডেটা ফেচিং এর জন্য কনফিগার করব এবং সেগুলি অ্যাপ্লিকেশনে ব্যবহার করব।
প্রথমে একটি নতুন Angular প্রজেক্ট তৈরি করুন (যদি ইতিমধ্যে থাকে, তবে সেটি ব্যবহার করতে পারেন):
ng new service-worker-demo
cd service-worker-demo
Angular অ্যাপে Service Worker ব্যবহার করতে হলে, আপনাকে @angular/pwa প্যাকেজটি ইন্সটল করতে হবে। এটি Angular অ্যাপে Progressive Web App (PWA) ফিচার যোগ করতে সাহায্য করে।
ng add @angular/pwa
এই কমান্ডটি Angular অ্যাপে Service Worker কনফিগার করে দিবে, যা আপনার অ্যাপ্লিকেশনকে অফলাইনে কাজ করতে সক্ষম করবে এবং ব্যাকগ্রাউন্ড ডেটা ফেচিং এর জন্য প্রস্তুত করবে।
এখন angular.json ফাইলের মধ্যে serviceWorker অপশনটি true করতে হবে।
"projects": {
"service-worker-demo": {
"architect": {
"build": {
"configurations": {
"production": {
"serviceWorker": true, // Enable service worker
"ngswConfigPath": "ngsw-config.json"
}
}
}
}
}
}
এখানে, serviceWorker: true এবং ngswConfigPath এর মাধ্যমে Service Worker কনফিগারেশন পাথ দেওয়া হয়েছে।
Angular Service Worker কনফিগারেশনের জন্য একটি ngsw-config.json
ফাইল ব্যবহার করা হয়। এটি Service Worker এর পদ্ধতিগুলো, ক্যাশিং কৌশল, এবং ব্যাকগ্রাউন্ড ডেটা ফেচিং কনফিগার করতে সাহায্য করে।
ngsw-config.json
ফাইলটি অ্যাপের মূল ফোল্ডারে থাকা উচিত। এই ফাইলে dataGroups কনফিগার করে আপনি ব্যাকগ্রাউন্ড ডেটা ফেচিং নিয়ন্ত্রণ করতে পারেন।
{
"version": 1,
"dataGroups": [
{
"name": "api-data", // API data group
"urls": [
"https://api.example.com/data" // Your API endpoint to fetch data
],
"cacheConfig": {
"maxSize": 10,
"maxAge": "1d", // Cache for 1 day
"strategy": "performance" // Fetch data in the background for better performance
}
}
]
}
এখানে, dataGroups এর মধ্যে urls এর তালিকায় আপনি যেসব API endpoint থেকে ডেটা ফেচ করতে চান সেগুলির URL নির্ধারণ করবেন। এছাড়া cacheConfig এর মাধ্যমে ডেটা ক্যাশিং কিভাবে হবে, সেগুলি নির্ধারণ করা হয়।
এখন আপনি Angular Service Worker এর মাধ্যমে API থেকে ডেটা ফেচ করতে পারেন এবং ব্যাকগ্রাউন্ডে সেই ডেটা ফেচ হতে থাকবে। এর জন্য HttpClient ব্যবহার করা হয়।
app.component.ts
ফাইল:import { Component, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
title = 'Angular Service Worker Example';
data: any;
constructor(private http: HttpClient) {}
ngOnInit(): void {
// Fetch initial data
this.fetchData();
}
fetchData(): void {
this.http.get('https://api.example.com/data').subscribe(response => {
this.data = response;
console.log('Fetched data: ', this.data);
});
}
}
এখানে, HttpClient এর মাধ্যমে আপনি API থেকে ডেটা ফেচ করছেন। API ডেটা ফেচ করার পর সেটি this.data তে সংরক্ষণ করা হচ্ছে এবং কনসোল লোগে আছাড়া হচ্ছে।
Angular Service Worker API ব্যবহার করে background fetch করতে হলে, আপনি service worker কে ব্যাকগ্রাউন্ডে ডেটা ফেচ করার জন্য কনফিগার করেছেন। Service Worker স্বয়ংক্রিয়ভাবে ব্যাকগ্রাউন্ডে ফেচিং শুরু করবে এবং ডেটা ক্যাশে করবে।
অবশেষে, Angular অ্যাপটি চালানোর জন্য নিচের কমান্ডটি ব্যবহার করুন:
ng serve --prod
এটি প্রোডাকশন মোডে অ্যাপ্লিকেশন চালাবে, যেখানে Service Worker সক্রিয় থাকবে এবং ব্যাকগ্রাউন্ড ডেটা ফেচিং কার্যকর হবে।
Angular Service Worker ব্যবহার করে আপনি background data fetching পরিচালনা করতে পারেন। Service Worker অ্যাপ্লিকেশনে ব্যাকগ্রাউন্ড ডেটা ফেচিং এবং ক্যাশিং সক্ষম করে, যা অফলাইনে কাজ করার ক্ষমতা এবং অ্যাপের পারফরম্যান্স উন্নত করতে সহায়তা করে। Service Worker কনফিগার করে আপনি অ্যাপের ডেটাকে ব্যাকগ্রাউন্ডে সিঙ্ক্রোনাইজ এবং ক্যাশ করতে পারেন, যা ইউজার এক্সপেরিয়েন্সকে আরও দ্রুত এবং ইন্টারঅ্যাকটিভ করে তোলে।