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

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

Filesystem API के साथ अपनी उम्मीद के दौरान, मैंने इसे अपनाने के दौरान कुछ सलाह भी दी हैं. हर सलाह की अपनी सीमाएं होती हैं, लेकिन एक साथ इस्तेमाल करने से 90% फ़ायदा मिल सकता है. ये रही पांच मुख्य जगहें:

  1. पक्का करें कि आप file:// से नहीं चला रहे. यह एक स्नीकी ट्रेंड है और इससे बहुत से लोग परेशान हो जाते हैं. Chrome, file:// पर सुरक्षा से जुड़ी बड़ी पाबंदियां लागू कर सकता है. अगर file:// से ऐप्लिकेशन को स्थानीय तौर पर चलाया जाता है, तो कई बेहतर फ़ाइल एपीआई (BlobBuilder, FileReader, Filesystem API,...) में गड़बड़ियां होती हैं या वे बिना किसी रुकावट के कार्रवाई नहीं कर पाते. अगर आपके पास वेब सर्वर नहीं है, तो इस सुरक्षा पाबंदी को बायपास करने के लिए, 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 आपका दोस्त है. इस पेज से आपको किसी ऑरिजिन के लिए सेव किए गए डेटा को न्यूक करने की सुविधा मिलती है. इसमें डेटाबेस स्टोरेज, Appकैश, कुकी, localStorage, और FileSystem API में मौजूद चीज़ें शामिल हैं. हालांकि, सावधान रहें, क्योंकि यह सिर्फ़ कुछ नहीं है या कुछ भी नहीं. सिर्फ़ एक फ़ाइल या डेटा को हटाया नहीं जा सकता.

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