نظام ملفات HTML5 هو واجهة برمجة تطبيقات فعالة. مع القوة، تأتي التعقيدات. مع التعقيد، تزداد صعوبة تصحيح الأخطاء. من المؤسف أن DevTools في Chrome لا تتوافق حاليًا مع واجهة Filesystem API. إنه يجعل تصحيح الأخطاء أكثر صعوبة مما ينبغي. وأعني بالصعب أن يُطلب منك كتابة تعليمات برمجية لإدراج/إزالة الملفات في نظام الملفات.
خلال مهامي في ما يتعلق بواجهة Filesystem API، عرضتُ بعض النصائح خلال هذه العملية. لكل نصيحة مجموعة من القيود الخاصة بها، ولكن استخدام مجموعة من هذه القيود يساعدك في تحقيق 90% من الفائدة. في ما يلي أهم 5:
تأكّد من عدم عرض إعلاناتك من "
file://
". إنه أمر مخادع قد يصادفه الكثير من الأشخاص. يفرض Chrome قيودًا أمنية كبيرة علىfile://
. تعرض العديد من واجهات برمجة التطبيقات المتقدمة للملفات (BlobBuilder
وFileReader
وواجهة برمجة التطبيقات Filesystem API...) أخطاءً أو تتوقّف بدون تنبيه إذا شغّلت التطبيق محليًا منfile://
. إذا لم يكن لديك خادم ويب، يمكن بدء Chrome باستخدام العلامة--allow-file-access-from-files
لتجاوز قيد الأمان هذا. لا تستخدم هذه العلامة إلا لأغراض الاختبار.الأسلوب
SECURITY_ERR
أوQUOTA_EXCEEDED_ERR
المخيف: يحدث هذا عادةً عند محاولة كتابة البيانات ولكنك تحت تأثير رقم 1. وإذا لم يكن الأمر كذلك، من المرجّح أنّه ليس لديك حصة تخزين. هناك نوعان من الحصص التي يمكن فتح نظام الملفات بها، وهماTEMPORARY
أوPERSISTENT
. وإذا كنت تستخدم الإضافة الأخيرة، على المستخدم بشكل صريح منح مساحة تخزين دائمة لتطبيقك. يُرجى الاطّلاع على هذه المشاركة حول كيفية إجراء ذلك.filesystem:
عنوان URL FTW. من السهل فتح عنوان URLfilesystem:
للجذرDirectoryEntry
من مصدر تطبيقك. ماذا يعني ذلك؟ على سبيل المثال، إذا كان تطبيقك متوفّرًا علىwww.example.com
، افتحfilesystem:http://www.example.com/temporary/
في علامة تبويب جديدة. سيعرض Chrome قائمة للقراءة فقط بالملفات/المجلدات المُخزَّنة أصل تطبيقك. لمزيد من المعلومات حول عناوين URL التي تتضمّنfilesystem:
، يمكنك الاطّلاع على https://www.html5rocks.com/en/tutorials/file/filesystem/#toc-filesystemurls.chrome://settings/cookies
هو صديقك. تسمح لك هذه الصفحة بإطلاق البيانات المخزنة للأصل. ويتضمن ذلك مساحة تخزين قاعدة البيانات وAppcache وملفات تعريف الارتباط وlocalStorage والعناصر الموجودة في واجهة برمجة التطبيقات FileSystem. ومع ذلك، احذر، الأمر كله أو لا شيء. لا يمكنك إزالة ملف واحد أو أجزاء واحدة من البيانات.لا تنسَ معاودة الاتصال عن طريق الخطأ. تظهر واجهة برمجة تطبيقات Filesystem في عالم غير متزامن (ما لم تكن تستخدم إصدار المزامنة في Workers). استخدِم دائمًا معاودة الاتصال بالأخطاء في طلبات البيانات من واجهة برمجة التطبيقات. انها اختيارية، ولكنها ستوفر على نفسك الكثير من الأسى لاحقًا عندما تفجّر الأمور.