TBH, I suspect there’s no good way to do that on an iPad—at least offline. These are pretty limited devices. They are really for low tech folk to browse the web, read books and play games. The client is better off using a laptop like a Macbook Air etc.
In the future, if iOS ever supports things like indexedDB, there may be some hope, but it sounds too ambitious right now, though I’m happy to be set straight.
The best way to achieve this is an app, period end of story. The app could fundamentally be a html5 container for what it’s worth.
You could try and set something up where you could hit a web page and then use the html5 local storage options to cache data but you’d still need to reconnect to upload things. Good luck when a user hits the back button. Another implementation option would be to run the web server locally and handle it that way.