تصحيح أخطاء واجهة برمجة التطبيقات Filesystem

نظام ملفات HTML5 هو واجهة برمجة تطبيقات فعالة. مع القوة، تأتي التعقيدات. مع التعقيد، تزداد صعوبة تصحيح الأخطاء. من المؤسف أن DevTools في Chrome لا تتوافق حاليًا مع واجهة Filesystem API. إنه يجعل تصحيح الأخطاء أكثر صعوبة مما ينبغي. وأعني بالصعب أن يُطلب منك كتابة تعليمات برمجية لإدراج/إزالة الملفات في نظام الملفات.

خلال مهامي في ما يتعلق بواجهة Filesystem API، عرضتُ بعض النصائح خلال هذه العملية. لكل نصيحة مجموعة من القيود الخاصة بها، ولكن استخدام مجموعة من هذه القيود يساعدك في تحقيق 90% من الفائدة. في ما يلي أهم 5:

  1. تأكّد من عدم عرض إعلاناتك من "file://". إنه أمر مخادع قد يصادفه الكثير من الأشخاص. يفرض Chrome قيودًا أمنية كبيرة على file://. تعرض العديد من واجهات برمجة التطبيقات المتقدمة للملفات (BlobBuilder وFileReader وواجهة برمجة التطبيقات Filesystem API...) أخطاءً أو تتوقّف بدون تنبيه إذا شغّلت التطبيق محليًا من file://. إذا لم يكن لديك خادم ويب، يمكن بدء Chrome باستخدام العلامة --allow-file-access-from-files لتجاوز قيد الأمان هذا. لا تستخدم هذه العلامة إلا لأغراض الاختبار.

  2. الأسلوب SECURITY_ERR أو QUOTA_EXCEEDED_ERR المخيف: يحدث هذا عادةً عند محاولة كتابة البيانات ولكنك تحت تأثير رقم 1. وإذا لم يكن الأمر كذلك، من المرجّح أنّه ليس لديك حصة تخزين. هناك نوعان من الحصص التي يمكن فتح نظام الملفات بها، وهما TEMPORARY أو PERSISTENT. وإذا كنت تستخدم الإضافة الأخيرة، على المستخدم بشكل صريح منح مساحة تخزين دائمة لتطبيقك. يُرجى الاطّلاع على هذه المشاركة حول كيفية إجراء ذلك.

  3. filesystem: عنوان URL FTW. من السهل فتح عنوان URL filesystem: للجذر DirectoryEntry من مصدر تطبيقك. ماذا يعني ذلك؟ على سبيل المثال، إذا كان تطبيقك متوفّرًا على www.example.com، افتح filesystem:http://www.example.com/temporary/ في علامة تبويب جديدة. سيعرض Chrome قائمة للقراءة فقط بالملفات/المجلدات المُخزَّنة أصل تطبيقك. لمزيد من المعلومات حول عناوين URL التي تتضمّن filesystem:، يمكنك الاطّلاع على https://www.html5rocks.com/en/tutorials/file/filesystem/#toc-filesystemurls.

  4. chrome://settings/cookies هو صديقك. تسمح لك هذه الصفحة بإطلاق البيانات المخزنة للأصل. ويتضمن ذلك مساحة تخزين قاعدة البيانات وAppcache وملفات تعريف الارتباط وlocalStorage والعناصر الموجودة في واجهة برمجة التطبيقات FileSystem. ومع ذلك، احذر، الأمر كله أو لا شيء. لا يمكنك إزالة ملف واحد أو أجزاء واحدة من البيانات.

  5. لا تنسَ معاودة الاتصال عن طريق الخطأ. تظهر واجهة برمجة تطبيقات Filesystem في عالم غير متزامن (ما لم تكن تستخدم إصدار المزامنة في Workers). استخدِم دائمًا معاودة الاتصال بالأخطاء في طلبات البيانات من واجهة برمجة التطبيقات. انها اختيارية، ولكنها ستوفر على نفسك الكثير من الأسى لاحقًا عندما تفجّر الأمور.