Filesystem API को डीबग करना

HTML5 फ़ाइल सिस्टम एक बेहतरीन एपीआई है. ताकत के साथ मुश्किलें भी आती हैं. जटिल समस्याओं को डीबग करने में ज़्यादा परेशानी होती है. यह दुर्भाग्य की बात है कि फ़िलहाल, Chrome DevTools में फ़ाइल सिस्टम एपीआई की सुविधा काम नहीं करती. इससे, डीबग करने की प्रोसेस ज़्यादा मुश्किल हो जाती है. मुश्किल होने का मतलब है कि फ़ाइल सिस्टम में फ़ाइलों की सूची बनाने/हटाने के लिए, कोड लिखना ज़रूरी है.

Filesystem API के साथ काम करते समय, मुझे कुछ सलाह मिलीं. मुझे लगता है कि आपको ये सलाह देनी चाहिए. हर सुझाव की अपनी सीमाएं होती हैं. हालांकि, इन सभी का इस्तेमाल करने से आपको 90% तक मदद मिलेगी. यहां पांच सबसे लोकप्रिय विकल्प दिए गए हैं:

  1. पक्का करें कि आपने file:// से नहीं चलाया हो. यह एक ऐसा धोखा है जिससे कई लोग गुमराह हो जाते हैं. Chrome, file:// पर सुरक्षा से जुड़ी गंभीर पाबंदियां लगाता है. file:// से ऐप्लिकेशन को स्थानीय तौर पर चलाने पर, फ़ाइल से जुड़े कई बेहतर एपीआई (BlobBuilder, FileReader, फ़ाइल सिस्टम एपीआई वगैरह) गड़बड़ियां दिखाते हैं या बिना किसी गड़बड़ी के काम नहीं करते. अगर आपके पास वेब सर्वर नहीं है, तो सुरक्षा से जुड़ी इस पाबंदी को बायपास करने के लिए, Chrome को --allow-file-access-from-files फ़्लैग के साथ शुरू किया जा सकता है. इस फ़्लैग का इस्तेमाल सिर्फ़ जांच के लिए करें.

  2. डराने वाला SECURITY_ERR या QUOTA_EXCEEDED_ERR. आम तौर पर, ऐसा तब होता है, जब डेटा लिखने की कोशिश की जा रही हो, लेकिन आप #1 के असर में हों. अगर ऐसा नहीं है, तो हो सकता है कि आपके पास कोटा न हो. फ़ाइल सिस्टम को खोलने के लिए, दो तरह के कोटा का इस्तेमाल किया जा सकता है: TEMPORARY या PERSISTENT. अगर आपने बाद वाले विकल्प का इस्तेमाल किया है, तो उपयोगकर्ता को आपके ऐप्लिकेशन को पर्सिस्टेंट स्टोरेज का ऐक्सेस देना होगा. ऐसा करने का तरीका जानने के लिए, यह पोस्ट देखें.

  3. filesystem: यूआरएल FTW. अपने ऐप्लिकेशन के ऑरिजिन के रूट DirectoryEntry के लिए, filesystem: यूआरएल खोलना आसान है. इसका क्या मतलब है? उदाहरण के लिए, अगर आपका ऐप्लिकेशन www.example.com पर मौजूद है, तो filesystem:http://www.example.com/temporary/ को नए टैब में खोलें. Chrome, आपके ऐप्लिकेशन के ऑरिजिन में सेव की गई फ़ाइलों/फ़ोल्डर की रीड-ओनली सूची दिखाएगा. filesystem: यूआरएल के बारे में ज़्यादा जानने के लिए, https://www.html5rocks.com/en/tutorials/file/filesystem/#toc-filesystemurls पर जाएं.

  4. chrome://settings/cookies आपका दोस्त है. इस पेज की मदद से, किसी ऑरिजिन के लिए सेव किया गया डेटा मिटाया जा सकता है. इसमें डेटाबेस स्टोरेज, AppCache, कुकी, localStorage, और FileSystem API में मौजूद अन्य चीज़ें शामिल हैं. हालांकि, आपको पहले से ही बता दें कि यह सुविधा या तो सभी के लिए उपलब्ध होगी या किसी के लिए भी नहीं. सिर्फ़ एक फ़ाइल या डेटा के कुछ हिस्से नहीं हटाए जा सकते.

  5. गड़बड़ी के कॉलबैक के बारे में न भूलें. Filesystem API, सिंक नहीं होने वाले वर्शन में काम करता है. हालांकि, अगर Workers में सिंक किए गए वर्शन का इस्तेमाल किया जा रहा है, तो यह सिंक होने वाले वर्शन में काम करता है. अपने एपीआई कॉल में, गड़बड़ी वाले कॉलबैक का हमेशा इस्तेमाल करें. इन्हें इस्तेमाल करना ज़रूरी नहीं है. हालांकि, ऐसा करने से आपको बाद में बहुत परेशानी नहीं होगी.