뚠뚠멍의 생각들

API प्रतिक्रियाओं को कैश करने का तरीका + वेब पेज कैशिंग

  • लेखन भाषा: कोरियाई
  • आधार देश: सभी देशcountry-flag
  • आईटी

रचना: 2024-09-29

रचना: 2024-09-29 21:03

आपने वेबसाइट पर बैक बटन दबाने पर पहले से लोड किए गए पेज को फिर से लोड करने का अनुभव कई बार किया होगा।


उदाहरण के लिए, किसी ऑनलाइन शॉपिंग वेबसाइट पर सर्च रिजल्ट में दिख रहे किसी प्रोडक्ट पर क्लिक करने के बाद, अगर आप बैक बटन दबाते हैं,

तो वह पेज फिर से सर्च होता है।


पहले से लोड किए गए पेज को फिर से लोड करना UX के लिए अच्छा नहीं है, लेकिन सिस्टम के लिहाज से यह और भी बड़ी समस्या है।

पेज को दोबारा लोड करने से अनावश्यक API कॉल होते हैं और ट्रैफ़िक बढ़ता है।

इससे लागत में भी वृद्धि हो सकती है, और अगर उस पेज पर डेटा एकत्र किया जा रहा है, तो कुछ डेटा का अत्यधिक संग्रहण भी हो सकता है।


इस समस्या का समाधान करने के लिए, पेज या API रिजल्ट को कैश करना बहुत कारगर साबित हो सकता है।


1. ब्राउज़र स्टोरेज का उपयोग करना (localStorage, SessionStorage, IndexedDB)

- localStorage में डेटा ब्राउज़र बंद करने के बाद भी बना रहता है।

- sessionStorage में डेटा ब्राउज़र या टैब बंद होने पर डिलीट हो जाता है।

- IndexedDB बड़े डेटा को स्टोर करने के लिए उपयोग किया जाता है। इसे असीमित रूप से स्टोर किया जा सकता है और यह NoSql है। इसमें इमेज और वीडियो भी स्टोर किए जा सकते हैं। अधिकतम क्षमता अलग-अलग ब्राउज़रों में अलग-अलग होती है, लेकिन लगभग 50MB के आसपास होती है। इसे ऑफ़लाइन भी इस्तेमाल किया जा सकता है।



2. Axios Interceptor

अगर आप axios का उपयोग करते हैं, तो आप इसके अंतर्निहित इंटरसेप्टर फीचर का उपयोग कर सकते हैं। यह एक ही रिक्वेस्ट के लिए सर्वर को बिना भेजे हुए रिस्पांस को वापस कर देता है।


Nuxt फ्रेमवर्क में कैशिंग

किसी भी कंपोनेंट को keep-alive टैग से घेरकर उसे कैश किया जा सकता है।


यह सेट करता है कि सर्वर साइड रेंडरिंग के दौरान fetch() को कॉल करना है या नहीं। अगर यह false है, तो fetch केवल क्लाइंट साइड पर ही कॉल किया जाएगा।


Vuex का उपयोग करने का तरीका भी है। इसका सिद्धांत ब्राउज़र स्टोरेज के समान है।


वेब सर्वर (Nginx) का उपयोग करके रिस्पांस हेडर में कैश सेटिंग्स को शामिल किया जा सकता है।

लेकिन, कैश के कारण इमेज जैसी रिर्सोर्स को तुरंत अपडेट नहीं किया जा सकता है, इसलिए ऐसे मामलों में कैश को रीसेट करना होगा। आप फ़ाइल का नाम बदल सकते हैं, कैश को रीसेट करने के लिए एक रिक्वेस्ट भेज सकते हैं, या अगर आप AWS CloudFront का उपयोग कर रहे हैं, तो आप कैश को रीसेट कर सकते हैं।


Nuxt सर्वर पर रेंडर किए गए पेज को मेमोरी कैश में स्टोर करने का तरीका भी है।

यह सर्वर-साइड कैशिंग है, और इसमें केवल API ही नहीं बल्कि पूरा पेज भी कैश किया जाता है। इसका मतलब है कि बैक बटन दबाने पर पेज बिना किसी देरी के लोड हो जाएगा। यह बहुत ही अच्छा परफॉर्मेंस देता है, लेकिन यह सर्वर मेमोरी का उपयोग करता है, इसलिए सावधानी बरतने की जरूरत है।

यदि 10,000 उपयोगकर्ता एक ही पेज का अनुरोध करते हैं,

पहले उपयोगकर्ता के अनुरोध पर, पेज रेंडर किया जाता है और कैश किया जाता है।

इसके बाद, जब 9,999 उपयोगकर्ता उसी पेज तक पहुँचते हैं, तो सर्वर कैश किए गए परिणामों का जवाब देता है।

-> अगर उपयोगकर्ता के आधार पर अलग-अलग डेटा दिखाना है, तो यह तरीका अच्छा नहीं है।

+ cache आंतरिक रूप से lru-cache पैकेज का उपयोग करता है।

* lru: सबसे लंबे समय तक उपयोग नहीं किए गए डेटा को प्राथमिकता से हटाने वाला एक कैशिंग एल्गोरिथम है।

यह हैशमैप या डबल लिंक्ड लिस्ट डेटा संरचना का उपयोग करके कुंजी-मूल्य को जल्दी से ढूंढता है: O(1) समय जटिलता

टिप्पणियाँ0

[DB] कैश सेटिंग के मानदंडडेटाबेस कैश सेटिंग मानदंड और वास्तविक अनुप्रयोग के मामलों को पेश करता है। अक्सर पढ़े जाने वाले और कम लिखे जाने वाले डेटा को कैशिंग करते हुए, TTL सेटिंग आदि के माध्यम से नवीनतमता बनाए रखने के तरीके के बारे में बताता है।
제이온
제이온
제이온
제이온

April 25, 2024

[गैर-तकनीकी, डेवलपर के रूप में जीवित रहना] 14. नव नियुक्त डेवलपर अक्सर पूछे जाने वाले तकनीकी साक्षात्कार सामग्री सारांशनव नियुक्त डेवलपर साक्षात्कार में अक्सर पूछे जाने वाले तकनीकी प्रश्न (मेमोरी क्षेत्र, डेटा संरचना, डेटाबेस आदि) को संक्षेप में प्रस्तुत किया गया है। डेवलपमेंट इंटरव्यू की तैयारी में यह मददगार होगा।
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

April 3, 2024

क्रॉलिंग (Crawling) क्या है?वेब क्रॉलर द्वारा इंटरनेट वेब पेजों को ब्राउज़ करने और जानकारी एकत्र करने की प्रक्रिया, जिसे क्रॉलिंग कहा जाता है, के बारे में जानें। इसका उपयोग विभिन्न क्षेत्रों जैसे सर्च इंजन, मूल्य तुलना और सोशल मीडिया विश्लेषण में किया जाता है।
여행가고싶은블로거지만여행에대해다루진않을수있어요
여행가고싶은블로거지만여행에대해다루진않을수있어요
여행가고싶은블로거지만여행에대해다루진않을수있어요
여행가고싶은블로거지만여행에대해다루진않을수있어요

April 26, 2024

क्लाउड रन का उपयोग करके स्टेटिक फ़ाइल सर्व करना - 1यह ब्लॉग पोस्ट Google क्लाउड रन का उपयोग करके स्थिर फ़ाइलें प्रदान करने के तरीके के बारे में है। यह रीडायरेक्ट और प्रदर्शन सुधार पर केंद्रित है।
두루미스 기술 블로그
두루미스 기술 블로그
두루미스 기술 블로그
두루미스 기술 블로그

September 4, 2024

कैनोनिकल टैग (canonical tag) क्या है: SEO में इसका महत्व और अनुकूलन विधिSEO में, कैनोनिकल टैग डुप्लिकेट कंटेंट समस्या को हल करने और सर्च इंजन ऑप्टिमाइजेशन में महत्वपूर्ण भूमिका निभाता है। सही सेटिंग के माध्यम से, आप सर्च रैंकिंग में सुधार कर सकते हैं और क्रॉलिंग दक्षता बढ़ा सकते हैं।
꿈많은청년들
꿈많은청년들
꿈많은청년들
꿈많은청년들

August 7, 2024

Next.js में notfound पेज के लिए http स्थिति 404 को संभालने का तरीकाNext.js App Router में NotFound पेज के लिए HTTP स्थिति कोड को 404 पर सेट करने के तरीके की व्याख्या करता है। लोडिंग UI को हटाने के बाद, 404 प्रतिक्रिया की सही तरीके से जाँच की गई।
Seize the day
Seize the day
Seize the day
Seize the day

November 5, 2024