any syntax errors in a manifest file hoses your app.
you cannot have any urls listed with a 404, or your app will be hosed.
you may have to use chrome://appcache-internals/ or run a small firebug script in about
:config on firefox to fix the damage. if this has gotten out into the wild, you'll basically have to change the url. this is why it's good to test with baked-in query params so you can change file urls if need be.
so "js/com.js" could be something like "js/com.js?123"
i didn't validate your markup, but i can tell at a glance that that date is not supposed to be hanging out up there own it's own.
also, make sure the content-type header on your manifest url says "text/cache-manifest" or better yet, "text/cache-manifest; charset=utf-8"...
a proper manifest setup will update the page's resources on the following
page reload() IF, and only IF
- no 404s or syntax errors in the manifest or it's pointed-at urls
- the manifest file, with comments and whitespace removed, has changed
- one or more urls listed in the manifest has changed paths
- a listed url, after fetching by the browser, does not match the stored local copy
- the page is open long enough for onload() to fire
if those conditions are met, you should see your file changes the second time you visit the page after uploading the changes.
one trick i use that has cut down on the pain of changing two files for every update is to have a small server script grab the file dates of any pointed-at resources, concat those dates together, replace non-wordy chars, and use that as a query string on a 0-byte file, /blank.txt.
this ends up looking something like:
under this system, altering any linked resource will alter the date of the file, and thus the url of blank.txt, triggering an appcache update() event and refreshing all resources.
two last bit's of advice;
it's under-documented that changing commented text ina manifest works in chrome but not firefox.
to check your manifest beofer publically linking to the page.