آفلاین کردن کل صفحه با استفاده از HTML5 FileSystem API

اجازه دهید با آن روبرو شویم، AppCache آزار دهنده است و مشکلاتی دارد [ 1 ، 2 ، 3 ]. یکی از محدودیت های بزرگ این واقعیت است که ذخیره سازی پویا دارایی ها در صورت تقاضا غیرممکن است. اساساً، این باعث می‌شود زمانی که قرار است یک برنامه آفلاین باشد، همه چیز یا هیچ چیز نیست. یا همه چیز در مانیفست در جلو ذخیره می شود، یا هیچ چیز در حافظه پنهان ذخیره نمی شود.

HTML5 FileSystem API به یک راه حل جذاب برای کاستی های AppCache تبدیل می شود. می‌توان فایل‌ها و سلسله‌مراتب پوشه‌ها را به صورت برنامه‌ریزی در سیستم فایل محلی (sandboxed) ذخیره کرد و متعاقباً منابع فردی را در صورت لزوم اضافه/به‌روزرسانی/حذف کرد. همکار من، بوریس اسموس، حتی یک کتابخانه خوب برای مدیریت این نوع کش آفلاین در زمینه بازی ها نوشت. همین ایده را می توان برای کار با هر نوع برنامه وب تعمیم داد.

crbug.com/89271 یک راه حل مهم برای FileSystem API است که سیستم فایل نسبی را ایجاد می کند: مسیرهای URL مانند یک جذابیت کار می کنند.

به عنوان مثال، من index.html را در پوشه ریشه سیستم فایل ( fs.root ) ذخیره کرده ام، یک پوشه img ایجاد کرده ام و "test.png" را در آن ذخیره کرده ام. filesystem: URL برای این دو فایل به ترتیب filesystem:http://example.com/temporary/index.html و filesystem:http://example.com/temporary/img/test.png خواهد بود. سپس، اگر بخواهم از "test.png" برای یک img.src استفاده کنم، باید از مسیر مطلق کامل آن استفاده کنم: <img src="filesystem:http://example.com/temporary/img/test.png"> این به معنای بازنویسی همه آدرس‌های اینترنتی مربوطه در index.html برای اشاره به filesystem: URL. باحال نبود! اکنون، با رفع این اشکال، می‌توانم مسیر نسبی فایل ( <img src="img/test.png"> ) را حفظ کنم، زیرا آنها به درستی در مبدا سیستم فایل حل می‌شوند.

این ویژگی باعث می شود که پایین کشیدن یک صفحه و ذخیره تمام منابع آن به صورت آفلاین، در حالی که ساختار پوشه دقیقاً مشابه نسخه آنلاین حفظ می شود، بی اهمیت باشد.

،

اجازه دهید با آن روبرو شویم، AppCache آزار دهنده است و مشکلاتی دارد [ 1 ، 2 ، 3 ]. یکی از محدودیت های بزرگ این واقعیت است که ذخیره سازی پویا دارایی ها در صورت تقاضا غیرممکن است. اساساً، این باعث می‌شود زمانی که قرار است یک برنامه آفلاین باشد، همه چیز یا هیچ چیز نیست. یا همه چیز در مانیفست در جلو ذخیره می شود، یا هیچ چیز در حافظه پنهان ذخیره نمی شود.

HTML5 FileSystem API به یک راه حل جذاب برای کاستی های AppCache تبدیل می شود. می‌توان فایل‌ها و سلسله‌مراتب پوشه‌ها را به صورت برنامه‌ریزی در سیستم فایل محلی (sandboxed) ذخیره کرد و متعاقباً منابع فردی را در صورت لزوم اضافه/به‌روزرسانی/حذف کرد. همکار من، بوریس اسموس، حتی یک کتابخانه خوب برای مدیریت این نوع کش آفلاین در زمینه بازی ها نوشت. همین ایده را می توان برای کار با هر نوع برنامه وب تعمیم داد.

crbug.com/89271 یک راه حل مهم برای FileSystem API است که سیستم فایل نسبی را ایجاد می کند: مسیرهای URL مانند یک جذابیت کار می کنند.

به عنوان مثال، من index.html را در پوشه ریشه سیستم فایل ( fs.root ) ذخیره کرده ام، یک پوشه img ایجاد کرده ام و "test.png" را در آن ذخیره کرده ام. filesystem: URL برای این دو فایل به ترتیب filesystem:http://example.com/temporary/index.html و filesystem:http://example.com/temporary/img/test.png خواهد بود. سپس، اگر بخواهم از "test.png" برای یک img.src استفاده کنم، باید از مسیر مطلق کامل آن استفاده کنم: <img src="filesystem:http://example.com/temporary/img/test.png"> این به معنای بازنویسی همه آدرس‌های اینترنتی مربوطه در index.html برای اشاره به filesystem: URL. باحال نبود! اکنون، با رفع این اشکال، می‌توانم مسیر نسبی فایل ( <img src="img/test.png"> ) را حفظ کنم، زیرا آنها به درستی در مبدا سیستم فایل حل می‌شوند.

این ویژگی باعث می شود که پایین کشیدن یک صفحه و ذخیره تمام منابع آن به صورت آفلاین، در حالی که ساختار پوشه دقیقاً مشابه نسخه آنلاین حفظ می شود، بی اهمیت باشد.