HTML5 FileSystem API का इस्तेमाल करके, पूरे पेज को ऑफ़लाइन इस्तेमाल करना

एरिक बिडेलमैन

जानते हैं कि Appकैश से परेशानी होती है और इसमें समस्याएं हैं [1, 2, 3]. एक बड़ी सीमा यह है कि मांग पर ऐसेट को डाइनैमिक तौर पर कैश मेमोरी में सेव नहीं किया जा सकता. इसका मतलब यह है कि इसका मतलब यह है कि इसका इस्तेमाल करके ऐप्लिकेशन को ऑफ़लाइन इस्तेमाल करना आसान हो जाता है. मेनिफ़ेस्ट में मौजूद सभी चीज़ों को कैश मेमोरी में सेव किया जाता है या फिर कुछ भी कैश मेमोरी में सेव नहीं किया जाता.

HTML5 FileSystem API, Appकैश की कमियों को दूर करने का एक आकर्षक तरीका बन जाता है. फ़ाइलों और फ़ोल्डर के क्रम को लोकल (सैंडबॉक्स) फ़ाइल सिस्टम में, प्रोग्राम के हिसाब से, प्रोग्राम के हिसाब से सेव किया जा सकता है. साथ ही, ज़रूरत के मुताबिक अलग-अलग संसाधनों को जोड़ा/अपडेट किया जा सकता है या हटाया जा सकता है. मेरे सहकर्मी, बोरिस स्मस ने एक अच्छी लाइब्रेरी भी लिखी, ताकि गेम के संदर्भ में इस तरह की ऑफ़लाइन कैश मेमोरी को मैनेज किया जा सके. किसी भी प्रकार के वेब ऐप्लिकेशन के साथ काम करने के लिए एक ही आइडिया का अनुमान लगाया जा सकता है.

crbug.com/89271 फ़ाइल सिस्टम एपीआई के लिए एक अहम सुधार है. इसकी मदद से मिलते-जुलते फ़ाइल सिस्टम: यूआरएल पाथ एक आकर्षण की तरह काम करते हैं.

उदाहरण के लिए, मान लें कि मैंने फ़ाइल सिस्टम के रूट फ़ोल्डर (fs.root) में index.html को सेव किया है, एक img फ़ोल्डर बनाया है, और उसमें "test.png" सेव किया है. उन दो फ़ाइलों का filesystem: यूआरएल, filesystem:http://example.com/temporary/index.html और filesystem:http://example.com/temporary/img/test.png होगा. इसके बाद, अगर मुझे किसी img.src के लिए "test.png" का इस्तेमाल करना है, तो मुझे इसके पूरे पाथ का इस्तेमाल करना होगा: <img src="filesystem:http://example.com/temporary/img/test.png">. इसका मतलब है कि index.html के सभी रिलेटिव यूआरएल को, उनसे जुड़ी फ़ाइल के filesystem: यूआरएल पर ले जाने के लिए फिर से लिखना. बढ़िया नहीं! अब, इस गड़बड़ी को ठीक करने के साथ, मैं फ़ाइल (<img src="img/test.png">) के रिलेटिव पाथ को रख सकती हूं, क्योंकि वह फ़ाइल सिस्टम ऑरिजिन पर सही तरीके से ठीक हो जाएगी.

इस सुविधा की मदद से, किसी पेज को नीचे लाना और उसके सभी रिसॉर्स को ऑफ़लाइन सेव करना आसान हो जाता है. हालांकि, फ़ोल्डर का स्ट्रक्चर वही रहता है जो ऑनलाइन वर्शन का है.