वेब ऍप्लिकेशन्समध्ये ऑफलाइन डेटा स्टोरेजसाठी लोकलस्टोरेज आणि इंडेक्स्डडीबीमधील फरक, फायदे आणि तोटे जाणून घ्या. तुमच्या गरजेनुसार कोणती टेक्नॉलॉजी सर्वोत्तम आहे ते शिका.
ऑफलाइन स्टोरेज शोडाउन: वेब ऍप्लिकेशन्ससाठी लोकलस्टोरेज विरुद्ध इंडेक्स्डडीबी
आजच्या जोडलेल्या जगात, वापरकर्त्यांना वेब ऍप्लिकेशन्स ऑफलाइन असतानाही प्रतिसाद देणारे आणि कार्यक्षम असण्याची अपेक्षा असते. अविश्वसनीय इंटरनेट कनेक्टिव्हिटी असलेल्या भागांमध्ये एक अखंड वापरकर्ता अनुभव प्रदान करण्यासाठी मजबूत ऑफलाइन क्षमता लागू करणे महत्त्वाचे आहे. हा ब्लॉग पोस्ट दोन लोकप्रिय ब्राउझर-आधारित स्टोरेज पर्यायांमध्ये खोलवर उतरतो: लोकलस्टोरेज आणि इंडेक्स्डडीबी, आपल्या वेब ऍप्लिकेशनसाठी सर्वोत्तम उपाय निवडण्यात मदत करण्यासाठी त्यांची वैशिष्ट्ये, फायदे आणि तोटे यांची तुलना करतो.
ऑफलाइन स्टोरेजची गरज समजून घेणे
ऑफलाइन स्टोरेज वेब ऍप्लिकेशन्सना वापरकर्त्याच्या डिव्हाइसवर स्थानिकरित्या डेटा संग्रहित करण्यास अनुमती देते, ज्यामुळे इंटरनेट कनेक्शनशिवाय सामग्री आणि कार्यक्षमतेमध्ये प्रवेश मिळतो. हे विशेषतः अशा परिस्थितीत मौल्यवान आहे जसे की:
- मोबाइल-फर्स्ट अनुभव: मोबाइल डिव्हाइसवरील वापरकर्त्यांना अनेकदा अधूनमधून कनेक्टिव्हिटीचा अनुभव येतो, ज्यामुळे ऑफलाइन प्रवेश आवश्यक होतो.
- प्रोग्रेसिव्ह वेब ऍप्स (PWAs): PWAs नेटिव्ह ऍप-सारखे अनुभव प्रदान करण्यासाठी ऑफलाइन स्टोरेजचा लाभ घेतात.
- डेटा-इंटेन्सिव्ह ऍप्लिकेशन्स: ज्या ऍप्लिकेशन्सना मोठ्या डेटासेटमध्ये प्रवेश आवश्यक असतो, त्यांना कार्यप्रदर्शन सुधारण्यासाठी स्थानिकरित्या डेटा संग्रहित करण्याचा फायदा होऊ शकतो.
- प्रवास आणि दूरस्थ काम: मर्यादित कनेक्टिव्हिटी असलेल्या भागात काम करणाऱ्या किंवा प्रवास करणाऱ्या वापरकर्त्यांना महत्त्वाच्या डेटामध्ये प्रवेश आवश्यक असतो.
लोकलस्टोरेज: सोपे की-व्हॅल्यू स्टोअर
लोकलस्टोरेज म्हणजे काय?
लोकलस्टोरेज ही वेब ब्राउझरमध्ये उपलब्ध असलेली एक सोपी, सिंक्रोनस की-व्हॅल्यू स्टोरेज यंत्रणा आहे. हे वेब ऍप्लिकेशन्सना वापरकर्त्याच्या डिव्हाइसवर लहान प्रमाणात डेटा कायमस्वरूपी संग्रहित करण्यास अनुमती देते.
लोकलस्टोरेजची प्रमुख वैशिष्ट्ये:
- सोपी API: `setItem`, `getItem`, आणि `removeItem` सारख्या सरळ पद्धतींसह वापरण्यास सोपे.
- सिंक्रोनस: ऑपरेशन्स सिंक्रोनस पद्धतीने केली जातात, ज्यामुळे मुख्य थ्रेड ब्लॉक होतो.
- स्ट्रिंग-आधारित: डेटा स्ट्रिंग म्हणून संग्रहित केला जातो, ज्यासाठी इतर डेटा प्रकारांसाठी सिरीयलायझेशन आणि डिसिरीयलायझेशन आवश्यक असते.
- मर्यादित स्टोरेज क्षमता: सामान्यतः प्रति ओरिजिन (डोमेन) सुमारे 5MB पर्यंत मर्यादित.
- सुरक्षितता: सेम-ओरिजिन पॉलिसीच्या अधीन, ज्यामुळे भिन्न डोमेनवरून प्रवेश प्रतिबंधित होतो.
लोकलस्टोरेज कसे वापरावे:
जावास्क्रिप्टमध्ये लोकलस्टोरेज कसे वापरावे याचे एक साधे उदाहरण येथे आहे:
// डेटा संग्रहित करणे
localStorage.setItem('username', 'JohnDoe');
// डेटा परत मिळवणे
const username = localStorage.getItem('username');
console.log(username); // आउटपुट: JohnDoe
// डेटा काढणे
localStorage.removeItem('username');
लोकलस्टोरेजचे फायदे:
- वापरण्यास सोपे: सोपी API मुळे ते त्वरित लागू करता येते.
- व्यापक ब्राउझर समर्थन: अक्षरशः सर्व आधुनिक ब्राउझरद्वारे समर्थित.
- लहान डेटासाठी उपयुक्त: वापरकर्त्याची प्राधान्ये, सेटिंग्ज आणि लहान प्रमाणात डेटा संग्रहित करण्यासाठी आदर्श.
लोकलस्टोरेजचे तोटे:
- सिंक्रोनस ऑपरेशन्स: मोठ्या डेटासेट किंवा जटिल ऑपरेशन्ससाठी कार्यप्रदर्शन समस्या निर्माण करू शकते.
- स्ट्रिंग-आधारित स्टोरेज: सिरीयलायझेशन आणि डिसिरीयलायझेशन आवश्यक आहे, ज्यामुळे ओव्हरहेड वाढतो.
- मर्यादित स्टोरेज क्षमता: मोठ्या प्रमाणात डेटा संग्रहित करण्यासाठी योग्य नाही.
- इंडेक्सिंग किंवा क्वेरींग नाही: डेटा कार्यक्षमतेने शोधणे किंवा फिल्टर करणे कठीण आहे.
लोकलस्टोरेजसाठी वापर प्रकरणे:
- वापरकर्त्याची प्राधान्ये संग्रहित करणे (थीम, भाषा, इ.)
- लहान प्रमाणात डेटा कॅश करणे (API प्रतिसाद, प्रतिमा).
- सत्र डेटा राखणे.
इंडेक्स्डडीबी: शक्तिशाली नोएसक्यूएल डेटाबेस
इंडेक्स्डडीबी म्हणजे काय?
इंडेक्स्डडीबी ही वेब ब्राउझरमध्ये उपलब्ध असलेली अधिक शक्तिशाली, ट्रान्झॅक्शनल आणि असिंक्रोनस नोएसक्यूएल डेटाबेस प्रणाली आहे. हे वेब ऍप्लिकेशन्सना वापरकर्त्याच्या डिव्हाइसवर मोठ्या प्रमाणात संरचित डेटा कायमस्वरूपी संग्रहित करण्यास अनुमती देते.
इंडेक्स्डडीबीची प्रमुख वैशिष्ट्ये:
- असिंक्रोनस: ऑपरेशन्स असिंक्रोनस पद्धतीने केली जातात, ज्यामुळे मुख्य थ्रेड ब्लॉक होण्यास प्रतिबंध होतो.
- ऑब्जेक्ट-आधारित: संरचित डेटा (ऑब्जेक्ट्स) थेट संग्रहित करते, सिरीयलायझेशनची आवश्यकता नाही.
- मोठी स्टोरेज क्षमता: लोकलस्टोरेजपेक्षा लक्षणीयरीत्या अधिक स्टोरेज जागा प्रदान करते (सामान्यतः उपलब्ध डिस्क जागेद्वारे मर्यादित).
- ट्रान्झॅक्शन्स: डेटा अखंडतेसाठी ट्रान्झॅक्शन्सना समर्थन देते.
- इंडेक्सिंग: कार्यक्षम डेटा पुनर्प्राप्तीसाठी इंडेक्स तयार करण्यास अनुमती देते.
- क्वेरींग: शक्तिशाली क्वेरींग क्षमता प्रदान करते.
- व्हर्जनिंग: स्कीमा अपग्रेडसाठी डेटाबेस व्हर्जनिंगला समर्थन देते.
इंडेक्स्डडीबी कसे वापरावे:
इंडेक्स्डडीबी वापरण्यात अनेक पायऱ्या समाविष्ट आहेत:
- डेटाबेस उघडा: डेटाबेस उघडण्यासाठी किंवा तयार करण्यासाठी `indexedDB.open` वापरा.
- एक ऑब्जेक्ट स्टोअर तयार करा: ऑब्जेक्ट स्टोअर हे रिलेशनल डेटाबेस मधील टेबलसारखे आहे.
- इंडेक्स तयार करा: कार्यक्षम क्वेरींगसाठी ऑब्जेक्ट स्टोअर प्रॉपर्टीजवर इंडेक्स तयार करा.
- ट्रान्झॅक्शन्स करा: डेटा वाचण्यासाठी, लिहिण्यासाठी किंवा हटवण्यासाठी ट्रान्झॅक्शन्स वापरा.
- इव्हेंट्स हाताळा: `success`, `error`, आणि `upgradeneeded` सारख्या इव्हेंट्ससाठी ऐका.
इंडेक्स्डडीबी डेटाबेस तयार करणे आणि वापरण्याचे एक सोपे उदाहरण येथे आहे:
const request = indexedDB.open('myDatabase', 1);
request.onerror = function(event) {
console.error('डेटाबेस उघडताना त्रुटी:', event);
};
request.onupgradeneeded = function(event) {
const db = event.target.result;
const objectStore = db.createObjectStore('users', { keyPath: 'id' });
objectStore.createIndex('email', 'email', { unique: true });
};
request.onsuccess = function(event) {
const db = event.target.result;
const transaction = db.transaction(['users'], 'readwrite');
const objectStore = transaction.objectStore('users');
const user = { id: 1, name: 'John Doe', email: 'john.doe@example.com' };
const addRequest = objectStore.add(user);
addRequest.onsuccess = function(event) {
console.log('वापरकर्ता यशस्वीरित्या जोडला गेला!');
};
transaction.oncomplete = function() {
db.close();
};
};
इंडेक्स्डडीबीचे फायदे:
- असिंक्रोनस ऑपरेशन्स: मुख्य थ्रेड ब्लॉक होण्यापासून प्रतिबंधित करते, ज्यामुळे कार्यप्रदर्शन सुधारते.
- ऑब्जेक्ट-आधारित स्टोरेज: संरचित डेटा थेट संग्रहित करते, ज्यामुळे डेटा व्यवस्थापन सोपे होते.
- मोठी स्टोरेज क्षमता: मोठ्या प्रमाणात डेटा संग्रहित करण्यासाठी योग्य.
- ट्रान्झॅक्शन्स: डेटा अखंडता सुनिश्चित करते.
- इंडेक्सिंग आणि क्वेरींग: कार्यक्षम डेटा पुनर्प्राप्ती सक्षम करते.
- व्हर्जनिंग: स्कीमा अपग्रेडसाठी अनुमती देते.
इंडेक्स्डडीबीचे तोटे:
- जटिलता: लोकलस्टोरेजपेक्षा अधिक जटिल API.
- शिकण्यासाठी जास्त वेळ: डेटाबेस संकल्पना समजून घेणे आवश्यक आहे.
- असिंक्रोनस स्वरूप: असिंक्रोनस ऑपरेशन्स काळजीपूर्वक हाताळणे आवश्यक आहे.
इंडेक्स्डडीबीसाठी वापर प्रकरणे:
- मोठे डेटासेट संग्रहित करणे (उदा. ऑफलाइन नकाशे, मीडिया फाइल्स).
- API प्रतिसाद कॅश करणे.
- जटिल ऍप्लिकेशन्ससाठी ऑफलाइन समर्थन लागू करणे.
- वापरकर्त्याने तयार केलेली सामग्री संग्रहित करणे.
लोकलस्टोरेज विरुद्ध इंडेक्स्डडीबी: एक तपशीलवार तुलना
येथे लोकलस्टोरेज आणि इंडेक्स्डडीबी मधील मुख्य फरक सारांशित करणारी एक टेबल आहे:
वैशिष्ट्य | लोकलस्टोरेज | इंडेक्स्डडीबी |
---|---|---|
स्टोरेज प्रकार | की-व्हॅल्यू (स्ट्रिंग्स) | ऑब्जेक्ट-आधारित (नोएसक्यूएल) |
API | सोपे, सिंक्रोनस | जटिल, असिंक्रोनस |
स्टोरेज क्षमता | मर्यादित (5MB) | मोठी (डिस्क जागेद्वारे मर्यादित) |
समवर्तीता | सिंगल-थ्रेडेड | मल्टी-थ्रेडेड |
इंडेक्सिंग | समर्थित नाही | समर्थित |
क्वेरींग | समर्थित नाही | समर्थित |
ट्रान्झॅक्शन्स | समर्थित नाही | समर्थित |
वापर प्रकरणे | लहान डेटा, वापरकर्ता प्राधान्ये | मोठा डेटा, जटिल ऍप्लिकेशन्स |
योग्य तंत्रज्ञान निवडणे: एक निर्णय मार्गदर्शक
लोकलस्टोरेज आणि इंडेक्स्डडीबी मधील निवड आपल्या वेब ऍप्लिकेशनच्या विशिष्ट आवश्यकतांवर अवलंबून असते. खालील घटकांचा विचार करा:
- डेटा आकार: जर आपल्याला फक्त लहान प्रमाणात डेटा संग्रहित करायचा असेल (उदा. वापरकर्ता प्राधान्ये), तर लोकलस्टोरेज एक चांगला पर्याय आहे. मोठ्या डेटासेटसाठी, इंडेक्स्डडीबी अधिक योग्य आहे.
- डेटा संरचना: जर तुमचा डेटा सोप्या की-व्हॅल्यू जोड्यांचा असेल, तर लोकलस्टोरेज पुरेसे आहे. संरचित डेटासाठी, इंडेक्स्डडीबी अधिक चांगले समर्थन प्रदान करते.
- कार्यप्रदर्शन: कार्यप्रदर्शन-गंभीर ऍप्लिकेशन्ससाठी, इंडेक्स्डडीबीचे असिंक्रोनस ऑपरेशन्स श्रेयस्कर आहेत. तथापि, लहान डेटासेटसाठी लोकलस्टोरेजचे सिंक्रोनस स्वरूप स्वीकार्य असू शकते.
- जटिलता: जर तुम्हाला किमान कोडसह सोपा उपाय हवा असेल, तर लोकलस्टोरेज लागू करणे सोपे आहे. क्वेरींग आणि ट्रान्झॅक्शन्ससह अधिक जटिल ऍप्लिकेशन्ससाठी, इंडेक्स्डडीबी आवश्यक आहे.
- ऑफलाइन आवश्यकता: तुमचे ऍप्लिकेशन ऑफलाइन किती प्रमाणात कार्य करणे आवश्यक आहे याचे मूल्यांकन करा. जर लक्षणीय ऑफलाइन कार्यक्षमता आवश्यक असेल, तर इंडेक्स्डडीबी सामान्यतः एक चांगला पर्याय आहे कारण ते मोठे डेटासेट आणि जटिल डेटा संरचना हाताळण्यास सक्षम आहे.
उदाहरण परिस्थिती:
- वापरकर्त्याच्या थीम प्राधान्यांसाठी एक साधी वेबसाइट: लोकलस्टोरेज वापरकर्त्याची निवडलेली थीम (लाइट किंवा डार्क) संग्रहित करण्यासाठी आदर्श आहे कारण हा डेटाचा एक लहान तुकडा आहे ज्यावर पटकन प्रवेश करणे आवश्यक आहे.
- एका वृत्त ऍप्लिकेशनसाठी PWA जे वापरकर्त्यांना लेख ऑफलाइन वाचण्याची परवानगी देते: येथे इंडेक्स्डडीबीला प्राधान्य दिले जाईल कारण ते अनेक लेख आणि त्यांच्याशी संबंधित प्रतिमा संग्रहित करू शकते, आणि श्रेणी किंवा कीवर्डवर आधारित क्वेरी करण्याची परवानगी देते.
- एक ऑफलाइन-सक्षम टू-डू लिस्ट ऍप्लिकेशन: जर यादी लहान असेल आणि जटिल फिल्टरिंगची आवश्यकता नसेल तर लोकलस्टोरेज वापरले जाऊ शकते. तथापि, जर टू-डू लिस्ट लक्षणीयरीत्या वाढू शकते आणि टॅगिंग किंवा प्राधान्यक्रमासारख्या वैशिष्ट्यांची आवश्यकता असेल तर इंडेक्स्डडीबी अधिक चांगले असेल.
- एक मॅपिंग ऍप्लिकेशन जे वापरकर्त्यांना ऑफलाइन वापरासाठी नकाशा टाइल्स डाउनलोड करण्याची परवानगी देते: नकाशाचा मोठ्या प्रमाणातील डेटा कार्यक्षमतेने संग्रहित करण्यासाठी इंडेक्स्डडीबी महत्त्वाचे आहे, ज्यात भौगोलिक समन्वयांनुसार टाइल्स इंडेक्स करण्याची क्षमता समाविष्ट आहे.
ऑफलाइन स्टोरेजसाठी सर्वोत्तम पद्धती
तुम्ही लोकलस्टोरेज किंवा इंडेक्स्डडीबी निवडले तरी, खालील सर्वोत्तम पद्धतींचे पालन केल्याने तुम्हाला एक मजबूत आणि विश्वसनीय ऑफलाइन अनुभव तयार करण्यात मदत होईल:
- त्रुटी व्यवस्थित हाताळा: स्टोरेज अनुपलब्ध किंवा खराब झाल्यास परिस्थिती व्यवस्थित हाताळण्यासाठी त्रुटी हाताळणी लागू करा.
- संपूर्णपणे चाचणी करा: तुमच्या ऑफलाइन स्टोरेज अंमलबजावणीची वेगवेगळ्या डिव्हाइसेस आणि ब्राउझरवर संपूर्णपणे चाचणी करा.
- डेटा स्टोरेज ऑप्टिमाइझ करा: कार्यप्रदर्शन सुधारण्यासाठी आणि स्टोरेज वापर कमी करण्यासाठी तुम्ही स्थानिकरित्या संग्रहित करत असलेल्या डेटाचे प्रमाण कमी करा.
- डेटा सिंक्रोनाइझेशन लागू करा: डिव्हाइस ऑनलाइन असताना स्थानिक स्टोरेज आणि सर्व्हर दरम्यान डेटा सिंक्रोनाइझ करण्यासाठी एक यंत्रणा लागू करा.
- सुरक्षिततेचा विचार: आपण संग्रहित करत असलेल्या डेटाबद्दल जागरूक रहा आणि संवेदनशील माहितीचे संरक्षण करण्यासाठी योग्य सुरक्षा उपाययोजना लागू करा. अत्यंत संवेदनशील डेटासाठी एन्क्रिप्शनचा विचार करा.
- वापरकर्त्याला सूचित करा: ऍप्लिकेशन ऑफलाइन असताना आणि ऑफलाइन कार्यक्षमतेच्या मर्यादांबद्दल वापरकर्त्याला स्पष्ट संदेश द्या. ऑनलाइन असताना डेटा सिंक करण्याचे पर्याय द्या.
- सर्व्हिस वर्कर्स वापरा: सर्व्हिस वर्कर्स नेटवर्क विनंत्यांना अडवण्यासाठी आणि कॅशमधून सामग्री देण्यासाठी आवश्यक आहेत, ज्यात लोकलस्टोरेज किंवा इंडेक्स्डडीबीमध्ये संग्रहित डेटा समाविष्ट आहे.
लोकलस्टोरेज आणि इंडेक्स्डडीबीच्या पलीकडे: इतर पर्याय
जरी लोकलस्टोरेज आणि इंडेक्स्डडीबी क्लायंट-साइड स्टोरेजसाठी सर्वात सामान्य पर्याय असले तरी, इतर तंत्रज्ञान अस्तित्वात आहेत:
- कुकीज: ऐतिहासिकदृष्ट्या क्लायंट-साइड स्टोरेजसाठी वापरल्या जातात, परंतु आता प्रामुख्याने सत्र व्यवस्थापनासाठी वापरल्या जातात. लहान स्टोरेज क्षमता आणि प्रामुख्याने HTTP-आधारित.
- वेब एसक्यूएल डेटाबेस: नापसंत (Deprecated), परंतु काही जुने ब्राउझर अजूनही त्याला समर्थन देऊ शकतात. नवीन प्रकल्पांसाठी ते वापरणे टाळा.
- कॅशे API: प्रामुख्याने नेटवर्क प्रतिसादांना कॅश करण्यासाठी, परंतु इतर डेटा संग्रहित करण्यासाठी देखील वापरले जाऊ शकते. सामान्यतः सर्व्हिस वर्कर्सच्या संयोगाने वापरले जाते.
- तृतीय-पक्ष लायब्ररी: अनेक जावास्क्रिप्ट लायब्ररी लोकलस्टोरेज, इंडेक्स्डडीबी, किंवा इतर स्टोरेज यंत्रणा (उदा. PouchDB, localForage) सह काम करण्यासाठी सोप्या API आणि ऍब्स्ट्रॅक्शन्स प्रदान करतात.
जागतिक विचार
जागतिक प्रेक्षकांसाठी ऑफलाइन स्टोरेज सोल्यूशन्स डिझाइन करताना, या घटकांचा विचार करा:
- कनेक्टिव्हिटीतील विविधता: वेगवेगळ्या प्रदेशांमध्ये इंटरनेटचा वेग आणि विश्वसनीयता खूप बदलते. सर्वात कमी सामान्य विभाजकासाठी डिझाइन करा.
- भाषा समर्थन: तुमचे ऍप्लिकेशन भिन्न कॅरेक्टर एन्कोडिंग आणि भाषा-विशिष्ट डेटा हाताळू शकते याची खात्री करा.
- डेटा स्थानिकीकरण: वापरकर्त्याच्या पसंतीची भाषा आणि प्रादेशिक सेटिंग्जमध्ये डेटा संग्रहित करण्याचा विचार करा.
- डेटा गोपनीयता नियम: वापरकर्ता डेटा स्थानिकरित्या संग्रहित करताना विविध देशांमधील डेटा गोपनीयता नियमांचे (उदा. GDPR, CCPA) पालन करा. स्पष्ट आणि समजण्याजोगी गोपनीयता धोरणे प्रदान करा.
- डिव्हाइस क्षमता: मर्यादित स्टोरेज आणि प्रक्रिया शक्ती असलेल्या लो-एंड स्मार्टफोनसह विस्तृत डिव्हाइसेसना लक्ष्य करा.
निष्कर्ष
ऑफलाइन स्टोरेजसाठी लोकलस्टोरेज आणि इंडेक्स्डडीबी मधील निवड तुमच्या ऍप्लिकेशनच्या विशिष्ट गरजांवर अवलंबून असते. लोकलस्टोरेज लहान प्रमाणात डेटा संग्रहित करण्यासाठी एक सोपा आणि सोयीस्कर पर्याय आहे, तर इंडेक्स्डडीबी मोठ्या प्रमाणात संरचित डेटा संग्रहित करण्यासाठी एक अधिक शक्तिशाली आणि लवचिक उपाय प्रदान करते. प्रत्येक तंत्रज्ञानाचे फायदे आणि तोटे काळजीपूर्वक विचारात घेऊन, तुम्ही तुमच्या वापरकर्त्यांना त्यांच्या स्थान किंवा इंटरनेट कनेक्टिव्हिटीची पर्वा न करता एक अखंड आणि आकर्षक ऑफलाइन अनुभव प्रदान करण्यासाठी सर्वोत्तम पर्याय निवडू शकता.
वापरकर्त्याच्या अनुभवाला प्राधान्य देणे, मजबूत त्रुटी हाताळणी लागू करणे आणि एक विश्वसनीय आणि सुरक्षित ऑफलाइन स्टोरेज अंमलबजावणी सुनिश्चित करण्यासाठी सर्वोत्तम पद्धतींचे पालन करणे लक्षात ठेवा. योग्य दृष्टिकोनाने, तुम्ही वेब ऍप्लिकेशन्स तयार करू शकता जे ऑफलाइन असतानाही प्रवेशयोग्य आणि कार्यक्षम असतील, ज्यामुळे वाढत्या जोडलेल्या जगात तुमच्या वापरकर्त्यांना एक मौल्यवान सेवा मिळेल.