<br><br>On Jun 26, 2007 4:26 PM, Robert O'Callahan <<a href="mailto:robert@ocallahan.org">robert@ocallahan.org</a>> wrote:<br>> On 6/27/07, Aaron Boodman <<a href="mailto:aa@google.com">aa@google.com</a>> wrote:
<br>> <br>> > If so, that means apps can't serve different resources at the same <br>> > URL, even when a connection is available, which seems like a big<br>> > constraint.<br>> <br>> Sure they can. The user can only have one active login per browser session
<br>> anyway, so the app just swaps in a whole new set of resources when the user<br>> logs in with a different ID.  The only restriction is that when the user's<br>> offline, they'll only be able to use the last ID that they logged in as. 
<br>> <br><br><br>The problem with this is what happens when two users share the same machine.  Not unusual with families and laptops.<br><br>So my kid and I both have an offline enabled version of a application X.  My kid was the last one runing X before leaving on a trip. I open the laptop and fire up X. From what I believe you said, I can't see my version of X.   This is a problem if the versions are actually different.
<br><br>One could (as Aaron did for Gearpad) down load all the code and dynamically use it depending on the user, but that can be expensive to do, especially as applications grow in size. For example in our initial tests it bacame clear that we would download different resources depending on the language setting for the user. You would not want to download all the languages for the application. If the user changed languages then we would recapture the application. Yes this does limit the user from changing languages when offline, but changing languages is a rare event and forcing the user to be online seemed to be a reasonable tradeoff.
<br><br>The downloading of different code per user also is useful for supporting web applications that provide different functionality depending on the user. This can occur if the application is tiered (e.g. you get a basic version for free, and the premium version for a fee) or when the application is slowly rolled out to the user community. 
<br><br>