Tag Archive for offline

In Part 1 I discussed offline storage limits between the various browsers. Since then, Firefox 4 has come out of beta, IE9 has been released, and numerous other changes in the browser landscape have occurred.

Unfortunately I don’t have access to a Windows Vista/7 box, so I have no idea (in practice) what the IE9 AppCache storage limit is. But I will update this when I’m able to do some testing. I also don’t really know about Chrome on Android as the only testing I can do is with the emulator, and it seems to crash on me a lot.

There don’t appear to be any changes in Safari or Firefox on the desktop. However in this article I will outline a method to provide “unlimited” storage in Chrome on the desktop. In a follow-up article I will discuss a method to get around the 10MB limit in Safari on iOS.

In developing audio thai I had the need to include MP3 files in the offline cache. The problem I ran into is that some browsers simply refuse to cache MP3 files, even if they’re explicitly defined in the cache.manifest. I really have no idea why this is the case, and I hope it gets fixed. But I needed a solution.

When I was living in Toronto, Internet was ubiquitous. I was one of the first people in the city (probably the country) to have DSL (1 mb/s). That was around 1998/1999. I was also one of the first people to sign up for HSDPA, paying an exorbitant amount to have fast internet available on my phone (I think I was getting between 1-2 mb/s consistently). That was around 2007. These experiences led me to believe that the Internet was ubiquitous, and that in 2010 we don’t need to worry about not having an Internet connection.

Well, travel 180° around the globe (or to any developing nation really) and things change.

I recently started doing some iPhone dev with PhoneGap. I’m using the Simulator included with Xcode and the iPhone SDK because it makes debugging faster and easier than an actual iPhone, and also I don’t have an actual iPhone. I do have an iPod Touch, but it’s lacking a lot of the features that make mobile apps cool, so I’m stuck with the Simulator for now. At any rate, I realized quickly that having a facility to browse the Safari-created SQLite databases would simplify my life profusely.

In developing an HTML5 offline app, a cache manifest is required in order to tell the app which files to cache. If a file changes, the manifest file needs to be changed as well. If a file is added, it needs to be added to the manifest. During the development process this can be quite a PITA.

Enter the dynamic cache manifest. Not only does this handle all the file adds/deletes, but it also handles changed files as it generates an MD5 hash of all files which it stores in the manifest file. So if the hash changes, the manifest changes.