Sebenarnya, AppCache menjengkelkan dan memiliki masalah [1, 2, 3]. Satu keterbatasan besar adalah tidak mungkin untuk meng-cache aset secara dinamis sesuai permintaan. Pada dasarnya, hal ini berarti membuat aplikasi menjadi offline atau tidak ada sama sekali. Segala sesuatu dalam manifes di-cache di awal, atau tidak ada yang di-cache.
FileSystem API HTML5 menjadi solusi yang menarik untuk kekurangan AppCache. Seseorang dapat secara terprogram menyimpan file dan hierarki folder di sistem file lokal (sandbox), lalu menambahkan/memperbarui/menghapus resource individual sesuai kebutuhan. Kolega saya, Boris Smus, bahkan menulis koleksi yang bagus untuk mengelola penyimpanan cache offline jenis ini dalam konteks game. Ide yang sama dapat diekstrapolasi agar berfungsi dengan semua jenis aplikasi web.
crbug.com/89271 adalah perbaikan penting untuk FileSystem API, yang membuat jalur filesystem: URL relatif berfungsi seperti pesona.
Katakanlah, saya telah menyimpan index.html di folder root sistem file (fs.root
), membuat folder img, dan menyimpan "test.png" di dalamnya. URL filesystem:
untuk kedua file tersebut akan menjadi filesystem:http://example.com/temporary/index.html
dan filesystem:http://example.com/temporary/img/test.png
. Kemudian, jika ingin menggunakan "test.png" untuk img.src
, saya harus menggunakan jalur absolut lengkapnya: <img src="filesystem:http://example.com/temporary/img/test.png">
. Hal itu berarti menulis ulang semua URL relatif di index.html agar mengarah ke URL filesystem:
file yang sesuai. Tidak keren! Sekarang, dengan perbaikan bug ini, saya dapat menyimpan jalur relatif ke file (<img src="img/test.png">
) karena akan di-resolve dengan benar ke asal sistem file.
Fitur ini membuatnya mudah untuk menarik halaman ke bawah dan menyimpan semua resource-nya secara offline, sambil tetap mempertahankan struktur folder yang sama persis dengan versi online-nya.