Question

I'm developing web apps using jQuery Mobile. These apps use a database to get prices, etc (using php). I'm also using appcache to be able to use the apps offline.

<html manifest="manifest.appcache">

This is all working perfectly. But when I'm online, I don't want the apps to use the appcache. How do I do that?

I can check wether I'm online/offline by checking if a file is available:

$.ajax({
    url:'http://someurl.com/online.txt',
    type:'HEAD',
    error: function()
    {
        console.log('offline');
    },
    success: function()
    {
        console.log('online');
    }
});

However I can't find anything to have the page not use the appcache..

Am I missing something?

Was it helpful?

Solution

Step by step solution:

  1. Check if you're online/offline
  2. If you're online, run a php script which adds a # at the end of the appcache manifest. This is because the cache will be updated if the manifest has changed.
  3. Swap the cache and refresh the page

After i finally got it working i noticed it didn't work in Firefox because of the swapCache() function. (https://bugzilla.mozilla.org/show_bug.cgi?id=769171) Lucky me my users don't use Firefox..

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top