تصحيح أخطاء واجهة برمجة التطبيقات 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: لعنوان URL 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 API. يُرجى العِلم أنّه لا يمكن تفعيل هذه الميزة إلا بشكل كامل. لا يمكنك إزالة ملف واحد أو أجزاء من البيانات فقط.

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