एचटीएमएल 5 में कैश मेनिफेस्ट: Difference between revisions

From Vigyanwiki
Line 112: Line 112:
=== हेडर FALLBACK के साथ फ़ॉलबैक अनुभाग ===
=== हेडर FALLBACK के साथ फ़ॉलबैक अनुभाग ===


कैश मैनिफ़ेस्ट फ़ाइल में फ़ॉलबैक अनुभाग का उपयोग उन ऑनलाइन संसाधनों को प्रतिस्थापित करने के लिए किया जा सकता है जिन्हें कैश नहीं किया जा सकता है या सफलतापूर्वक कैश नहीं किया गया है।<ref name="main" />
कैश मेनिफेस्ट फ़ाइल में फ़ॉलबैक अनुभाग का उपयोग उन ऑनलाइन संसाधनों को प्रतिस्थापित करने के लिए किया जा सकता है जिन्हें कैश नहीं किया जा सकता है या सफलतापूर्वक कैश नहीं किया गया है।<ref name="main" />


उदाहरण 4:
उदाहरण 4:
Line 123: Line 123:


== घटना प्रवाह ==
== घटना प्रवाह ==
घटनाएँ के अंतर्गत हैं <code>ApplicationCache</code> जावास्क्रिप्ट ऑब्जेक्ट.
घटना <code>ApplicationCache</code> जावास्क्रिप्ट ऑब्जेक्ट के अंतर्गत होते है।


यदि ब्राउज़र किसी वेब पेज पर जाता है, पहले वेब पेज नहीं देखा है और परिणामस्वरूप मेनिफेस्ट फ़ाइल को नहीं पहचानता है, तो निम्नलिखित घटनाएं घटित होंगी।<ref name="W3" />
यदि ब्राउज़र किसी वेब पेज पर जाता है, पहले वेब पेज नहीं देखा है और परिणामस्वरूप मेनिफेस्ट फ़ाइल को नहीं पहचानता है, तो निम्नलिखित घटनाएं घटित होती है ।<ref name="W3" />


* <code>Checking</code> घटना - तब होती है जब ब्राउज़र किसी वेब पेज पर जाता है और <html> तत्व पर मेनिफेस्ट विशेषता पढ़ता है।
* <code>Checking</code> घटना - तब होती है जब ब्राउज़र किसी वेब पेज पर जाता है और <html> तत्व पर मेनिफेस्ट विशेषता पढ़ता है।
* <code>Downloading</code> इवेंट - यह मेनिफेस्ट फ़ाइल में दिए गए सभी संसाधनों को डाउनलोड करेगा।
* <code>Downloading</code> घटना - यह मेनिफेस्ट फ़ाइल में दिए गए सभी संसाधनों को डाउनलोड करता है ।
* <code>Progress</code> इवेंट - इसमें यह जानकारी होती है कि कितनी फ़ाइलें डाउनलोड की गई हैं और कितनी फ़ाइलें डाउनलोड की जानी बाकी हैं।
* <code>Progress</code> घटना - इसमें यह जानकारी होती है कि कितनी फ़ाइलें डाउनलोड की गई हैं और कितनी फ़ाइलें डाउनलोड की जाती हैं।
* <code>Cached</code> घटना - तब घटित होती है जब सभी फ़ाइलें डाउनलोड हो जाती हैं और ऑफ़लाइन वेब एप्लिकेशन ऑफ़लाइन उपयोग के लिए सुसज्जित हो जाता है।
* <code>Cached</code> घटना - तब होता है जब सभी फ़ाइलें डाउनलोड हो जाती हैं और ऑफ़लाइन वेब एप्लिकेशन ऑफ़लाइन उपयोग के लिए सुसज्जित हो जाता है।


यदि ब्राउज़र पहले वेब पेज पर गया है और मेनिफेस्ट फ़ाइल को पहचानता है तो निम्नलिखित घटनाएं घटित होंगी।<ref name="W3" />
यदि ब्राउज़र पहले वेब पेज पर गया है और मेनिफेस्ट फ़ाइल को पहचानता है तो निम्नलिखित घटनाएं घटित होती है।<ref name="W3" />
  * <code>Noupdate</code> घटना - यह तब घटित होगा जब कैश मेनिफ़ेस्ट नहीं बदला गया हो।
  * <code>Noupdate</code> घटना - यह तब घटित होगा जब कैश मेनिफ़ेस्ट नहीं बदला गया हो।
* <code>Downloading</code> घटना - यदि कैश मेनिफेस्ट ने संसाधनों को बदल दिया है तो फ़ाइलें फिर से डाउनलोड की जाएंगी।
* <code>Downloading</code> घटना - यदि कैश मेनिफेस्ट ने संसाधनों को बदल दिया है तो फ़ाइलें फिर से डाउनलोड की जाएंगी।
* <code>Progress</code> इवेंट - इसमें यह जानकारी होती है कि कितनी फ़ाइलें डाउनलोड हो चुकी हैं और कितनी फ़ाइलें डाउनलोड होनी बाकी हैं।
* <code>Progress</code> घटना - इसमें यह जानकारी होती है कि कितनी फ़ाइलें डाउनलोड हो चुकी हैं और कितनी फ़ाइलें डाउनलोड होनी बाकी हैं।
* <code>Updateready</code> इवेंट - पुनः डाउनलोडिंग पूरी होने के बाद, यह इवेंट ट्रिगर हो जाता है, जो दर्शाता है कि नया ऑफ़लाइन संस्करण उपयोग के लिए तैयार है।
* <code>Updateready</code> घटना - पुनः डाउनलोडिंग पूरी होने के बाद, यह घटना ट्रिगर हो जाता है, जो दर्शाता है कि नया ऑफ़लाइन संस्करण उपयोग के लिए तैयार होता है।


यदि उपरोक्त घटनाओं में किसी भी समय कोई त्रुटि होती है, तो ब्राउज़र एक त्रुटि घटना को ट्रिगर करेगा और प्रक्रिया को रोक देगा। नीचे कुछ त्रुटियाँ दी गई हैं जो संसाधनों को दोबारा डाउनलोड करते समय हो सकती हैं।<ref name="Dev" />
यदि उपरोक्त घटनाओं में किसी भी समय कोई त्रुटि होती है, तो ब्राउज़र एक त्रुटि घटना को ट्रिगर करेगा और प्रक्रिया को रोक देगा। नीचे कुछ त्रुटियाँ दी गई हैं जो संसाधनों को दोबारा डाउनलोड करते समय हो सकती हैं।<ref name="Dev" />


* पृष्ठ नहीं मिला ([[HTTP 404]]) या पृष्ठ स्थायी रूप से चला गया (HTTP त्रुटि 410)।
* पृष्ठ नहीं मिला ([[HTTP 404]]) या पृष्ठ स्थायी रूप से चला गया (HTTP त्रुटि 410)।
* मैनिफ़ेस्ट की ओर इंगित करने वाले HTML पृष्ठ को डाउनलोड करने में विफलता।<ref name="main" />* अद्यतन होने के समय कैश मेनिफ़ेस्ट बदल गया।<ref name="main" />* कैश मेनिफ़ेस्ट बदल दिया गया था लेकिन ब्राउज़र ने मेनिफ़ेस्ट में कोई संसाधन डाउनलोड नहीं किया।<ref name="main" />
* मैनिफ़ेस्ट की ओर इंगित करने वाले HTML पृष्ठ को डाउनलोड करने में विफलता।<ref name="main" />  
*अद्यतन होने के समय कैश मेनिफ़ेस्ट बदल गया।<ref name="main" />* कैश मेनिफ़ेस्ट बदल दिया गया था लेकिन ब्राउज़र ने मेनिफ़ेस्ट में कोई संसाधन डाउनलोड नहीं किया जाता है ।<ref name="main" />
== यह भी देखें ==
== यह भी देखें ==
* एचटीएमएल5
* एचटीएमएल5

Revision as of 11:58, 20 July 2023

Template:Copied to Wikibooks

Filename extension
.appcache
Internet media type
text/cache-manifest
Developed byWorld Wide Web Consortium
StandardHTML5
Open format?Yes
Websitehtml.spec.whatwg.org/multipage/browsers.html#offline

HTML5 में कैश मेनिफेस्ट एक सॉफ्टवेयर स्टोरेज सुविधा थी जो नेटवर्क संयोजन के बिना भी वेब अनुप्रयोग तक पहुंचने की क्षमता प्रदान करती थी। यह 28 अक्टूबर 2014 को W3C अनुशंसा का अंग बन गया।[1]

2021 से, यह तकनीक अब व्यापक रूप से उपलब्ध नहीं है। इसे फ़ायरफ़ॉक्स 85 से हटा दिया गया था,[2] और क्रोम 84 में डिफ़ॉल्ट रूप से अक्षम कर दिया गया था और क्रोम 95 में हटा दिया गया था।[3] इस समय किसी भी ऑफ़लाइन वेब एप्लिकेशन सुविधाओं का उपयोग करने की अत्यधिक अनुशंसा नहीं की जाती है और इसके अतिरिक्त सेवा कर्मियों के उपयोग की अनुशंसा की जाती है।[4] कैश मैनिफ़ेस्ट वेब एप्लिकेशन मेनिफेस्ट से भिन्न होते हैं, एक JSON-आधारित फ़ाइल स्वरूप जो प्रगतिशील वेब ऐप तकनीक का हिस्सा है, और 2023 तक वर्तमान में सक्रिय है और W3C पर मानकीकरण प्रक्रिया से निकलता है।[5]

पृष्ठभूमि

वेब एप्लिकेशन में वे वेब पेज सम्मलित होते हैं हैं जिन्हें नेटवर्क से डाउनलोड करने की आवश्यकता होती है। ऐसा होने के लिए नेटवर्क कनेक्शन होना चाहिए। चूँकि , ऐसे कई उदाहरण हैं जब उपयोगकर्ता अपने नियंत्रण से परे परिस्थितियों के कारण नेटवर्क से संयोजित नहीं हो पाते हैं। HTML5 वेब कैश मेनिफेस्ट का उपयोग करके नेटवर्क कनेक्शन के बिना भी वेब एप्लिकेशन तक पहुंचने की क्षमता प्रदान करता है।

वेब अनुप्रयोगों में URLs (यूनिफ़ॉर्म रिसोर्स लोकेटर) द्वारा पहचाने गए संसाधन सम्मलित होते हैं। ये HTML, CSS (व्यापक शैली पत्रक), जावास्क्रिप्ट, छवियां या कोई अन्य स्रोत हो सकते हैं जो वेब एप्लिकेशन को प्रस्तुत करने के लिए आवश्यक होते हैं। उनके पतों को एक को एक मेनिफेस्ट फ़ाइल में कॉपी किया जा सकता है, जिसे वेब एप्लिकेशन के लेखक द्वारा नियमित रूप से अपडेट किया जा सकता है, जो जोड़े या हटाए गए किसी भी नए वेब पते को इंगित करता है। पहली बार किसी नेटवर्क से कनेक्ट होने पर, एक वेब ब्राउज़र HTML5 मेनिफेस्ट फ़ाइल को पढ़कर, दिए गए संसाधनों को डाउनलोड करेगा और उन्हें स्थानीय रूप से संग्रहीत करत है। फिर, नेटवर्क कनेक्शन की अनुपस्थिति में, वेब ब्राउज़र स्थानीय प्रतियों पर स्थानांतरित हो जाएगा और वेब एप्लिकेशन को ऑफ़लाइन प्रस्तुत करेगा।

मूल बातें

ऑफ़लाइन एप्लिकेशन को काम करने के लिए, वेब डेवलपर द्वारा एक कैश मेनिफेस्ट फ़ाइल बनाई जानी चाहिए। यदि वेब एप्लिकेशन एक से अधिक पेज से अधिक है तो प्रत्येक पेज में एक मेनिफेस्ट विशेषता होनी चाहिए जो कैश मेनिफेस्ट को इंगित करती है। मेनिफेस्ट को संदर्भित करने वाला प्रत्येक पृष्ठ स्थानीय रूप से संग्रहीत किया जाएगा।[6] कैश मेनिफेस्ट फ़ाइल सर्वर के दूसरे भाग में स्थित एक टेक्स्ट फ़ाइल होती है। इसे सामग्री प्रकार के साथ प्रस्तुत किया जाना चाहिए text/cache-manifest[7]

विशेषता manifest="<path>" कैश मेनिफेस्ट फ़ाइल को काम करने के लिए html तत्व में जोड़ा जाना चाहिए।[7]

उदाहरण:

<!DOCTYPE HTML>
<html manifest="cache.appcache">
  <body></body>
</html>

मेनिफेस्ट विशेषता का तर्क मेनिफेस्ट फ़ाइल का एक सापेक्ष या निरपेक्ष पथ होता है।

नीचे दी गई HTML फ़ाइल पर विचार करें। <html> तत्व इंगित करता है कि cache.appcache नामक फ़ाइल में इस वेब पेज के ऑफ़लाइन काम करने के लिए आवश्यक संसाधनों (जैसे, test.js, test.css) की सूची होती है। इस फ़ाइल के सामान्य नाम cache.manifest और manifest.appcache हैं।

<!—- test.html -->
<!DOCTYPE HTML>
<html manifest="cache.appcache">
<head>
  <title>Test</title>
  <script src="test.js"></script>
  <link rel="stylesheet" href="test.css">
</head>
<body>
  Testing the manifest file.
</body>
</html>

सिंटेक्स

मेनिफेस्ट फ़ाइल लाइन से प्रारंभ होनी चाहिए CACHE MANIFEST. टिप्पणियाँ टिप्पणियाँ # से प्रारंभ होती हैं #, रिक्त स्थान और रिक्त पंक्तियों को उपेक्षित कर दिया जाता है।[8] नीचे कैश मेनिफेस्ट फ़ाइल का एक उदाहरण दिया गया है।

उदाहरण 1:

CACHE MANIFEST
/test.css
/test.js
/test.png

यह मेनिफेस्ट फ़ाइल तीन संसाधनों को सूचीबद्ध करती है: एक CSS फ़ाइल, एक जावास्क्रिप्ट फ़ाइल और एक PNG छवि होती है। जब उपरोक्त फ़ाइल लोड की जाती है, तो ब्राउज़र वेब सर्वर में मूल निर्देशिका से test.css, test.js और test.png फ़ाइलें डाउनलोड करता है।[7]परिणामस्वरूप, जब भी किसी का नेटवर्क कनेक्ट नहीं होगा, तो संसाधन उन्हें ऑफ़लाइन उपलब्ध होते है।

जैसा कि नीचे दिखाया गया है, कैश मेनिफेस्ट सापेक्ष पथ या यहां तक ​​कि पूर्ण URLs का भी उपयोग कर सकते हैं।[8][9][10]

उदाहरण 2:

CACHE MANIFEST
/main/features.js
/main/settings/index.css
<nowiki>http://files/images/scene.jpg
<nowiki>http://files/images/world.jpg

फ़ाइल शीर्षलेख

कैश मेनिफेस्ट फ़ाइल में तीन सेक्शन हेडर होते हैं।[7]

  1. CACHE हेडर के साथ स्पष्ट अनुभाग।
  2. हेडर नेटवर्क के साथ ऑनलाइन श्वेतसूची अनुभाग।
  3. फ़ॉलबैक हेडर फ़ॉलबैक के साथ फ़ॉलबैक अनुभाग।

नोट: उपरोक्त उदाहरण 1 और उदाहरण 2, किसी भी अनुभाग शीर्षलेख को इंगित नहीं करते हैं और इसलिए उन्हें डिफ़ॉल्ट रूप से एक स्पष्ट अनुभाग माना जाता है।

हेडर नेटवर्क के साथ ऑनलाइन श्वेतसूची अनुभाग

उदाहरण 3:

CACHE MANIFEST 
NETWORK: 
/checking.cgi
CACHE:
/test.css
/test.js
/test.png

इस उदाहरण में हेडर सम्मलित हैं. लाइन, नेटवर्क: ऑनलाइन श्वेतसूची अनुभाग की शुरुआत है। इस अनुभाग के अंतर्गत सूचीबद्ध संसाधन कभी भी कैश्ड नहीं होते हैं और ऑफ़लाइन उपलब्ध नहीं होते हैं।[7]परिणामस्वरूप, जब संसाधन को ऑफ़लाइन लोड करने का प्रयास किया जाएगा तो एक त्रुटि उत्पन्न होगी।

हेडर कैश द्वारा स्पष्ट अनुभाग में बदलाव किया गया है: और संसाधनों (CSS स्टाइलशीट, जावास्क्रिप्ट और छवि फ़ाइल) को ऑफ़लाइन डाउनलोड और उपयोग किया जा सकता है।

हेडर FALLBACK के साथ फ़ॉलबैक अनुभाग

कैश मेनिफेस्ट फ़ाइल में फ़ॉलबैक अनुभाग का उपयोग उन ऑनलाइन संसाधनों को प्रतिस्थापित करने के लिए किया जा सकता है जिन्हें कैश नहीं किया जा सकता है या सफलतापूर्वक कैश नहीं किया गया है।[7]

उदाहरण 4:

CACHE MANIFEST
FALLBACK:
/ /offline.html 
NETWORK:
…

उदाहरण 4 में, फ़ॉलबैक अनुभाग में एक पंक्ति होती है। अर्थात, i.e., / /offline.html. 'ऑफ़लाइन' से पहले एकल वर्ण (/) किसी की साइट पर किसी भी URL पैटर्न से मिलान करता है।[7] यदि ब्राउज़र को ऐप कैश में पेज नहीं मिलता है, तो एप्लिकेशन /offline.html. पेज प्रदर्शित करता है।

घटना प्रवाह

घटना ApplicationCache जावास्क्रिप्ट ऑब्जेक्ट के अंतर्गत होते है।

यदि ब्राउज़र किसी वेब पेज पर जाता है, पहले वेब पेज नहीं देखा है और परिणामस्वरूप मेनिफेस्ट फ़ाइल को नहीं पहचानता है, तो निम्नलिखित घटनाएं घटित होती है ।[8]

  • Checking घटना - तब होती है जब ब्राउज़र किसी वेब पेज पर जाता है और <html> तत्व पर मेनिफेस्ट विशेषता पढ़ता है।
  • Downloading घटना - यह मेनिफेस्ट फ़ाइल में दिए गए सभी संसाधनों को डाउनलोड करता है ।
  • Progress घटना - इसमें यह जानकारी होती है कि कितनी फ़ाइलें डाउनलोड की गई हैं और कितनी फ़ाइलें डाउनलोड की जाती हैं।
  • Cached घटना - तब होता है जब सभी फ़ाइलें डाउनलोड हो जाती हैं और ऑफ़लाइन वेब एप्लिकेशन ऑफ़लाइन उपयोग के लिए सुसज्जित हो जाता है।

यदि ब्राउज़र पहले वेब पेज पर गया है और मेनिफेस्ट फ़ाइल को पहचानता है तो निम्नलिखित घटनाएं घटित होती है।[8]

* Noupdate घटना - यह तब घटित होगा जब कैश मेनिफ़ेस्ट नहीं बदला गया हो।
  • Downloading घटना - यदि कैश मेनिफेस्ट ने संसाधनों को बदल दिया है तो फ़ाइलें फिर से डाउनलोड की जाएंगी।
  • Progress घटना - इसमें यह जानकारी होती है कि कितनी फ़ाइलें डाउनलोड हो चुकी हैं और कितनी फ़ाइलें डाउनलोड होनी बाकी हैं।
  • Updateready घटना - पुनः डाउनलोडिंग पूरी होने के बाद, यह घटना ट्रिगर हो जाता है, जो दर्शाता है कि नया ऑफ़लाइन संस्करण उपयोग के लिए तैयार होता है।

यदि उपरोक्त घटनाओं में किसी भी समय कोई त्रुटि होती है, तो ब्राउज़र एक त्रुटि घटना को ट्रिगर करेगा और प्रक्रिया को रोक देगा। नीचे कुछ त्रुटियाँ दी गई हैं जो संसाधनों को दोबारा डाउनलोड करते समय हो सकती हैं।[9]

  • पृष्ठ नहीं मिला (HTTP 404) या पृष्ठ स्थायी रूप से चला गया (HTTP त्रुटि 410)।
  • मैनिफ़ेस्ट की ओर इंगित करने वाले HTML पृष्ठ को डाउनलोड करने में विफलता।[7]
  • अद्यतन होने के समय कैश मेनिफ़ेस्ट बदल गया।[7]* कैश मेनिफ़ेस्ट बदल दिया गया था लेकिन ब्राउज़र ने मेनिफ़ेस्ट में कोई संसाधन डाउनलोड नहीं किया जाता है ।[7]

यह भी देखें

संदर्भ

  1. "Application cache as part of the W3C Recommendation". 28 October 2014. Retrieved 30 May 2016.
  2. "Using the application cache - HTML: HyperText Markup Language | MDN". developer.mozilla.org. Archived from the original on 2019-02-15. Retrieved 2021-04-11.
  3. "AppCache हटाने की तैयारी की जा रही है". web.dev (in English). Archived from the original on 2020-05-20. Retrieved 2021-09-02.
  4. "विंडो.एप्लिकेशन कैश". MDN Web Docs. Mozilla. Retrieved 2020-12-29.
  5. "वेब एप्लिकेशन मेनिफेस्ट". www.w3.org. Retrieved 2023-04-09.
  6. Bidelman, Eric (29 October 2013). "एप्लिकेशन कैश का उपयोग करने के लिए एक शुरुआती मार्गदर्शिका". Retrieved 23 April 2014.
  7. 7.0 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 Pilgrim, Mark (2010). HTML5 Up and Running. O'Reilley. Archived from the original on 2011-10-03. Retrieved 2018-11-16.
  8. 8.0 8.1 8.2 8.3 "W3 HTML5 Manifests". HTML5. Archived from the original on 24 December 2010. Retrieved 3 April 2011.
  9. 9.0 9.1 "देव.ओपेरा". HTML5. Retrieved 3 April 2011.
  10. "क्या?". HTML5. Archived from the original on 14 April 2011. Retrieved 3 April 2011.


बाहरी संबंध