On 6/30/07, <b class="gmail_sendername">Aaron Boodman</b> <<a href="mailto:aa@google.com">aa@google.com</a>> wrote:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On 6/26/07, Robert O'Callahan <<a href="mailto:robert@ocallahan.org">robert@ocallahan.org</a>> wrote:<br>> Right now I think we're missing just one thing from your list of goals<br>> (excluding the vexatious "multiple resources for one URI" goal): a way to
<br>> get consistent updates without relying on JAR files (and hence changing<br>> URIs). As I mentioned earlier, I think we can get that by simply stating<br>> (and implementing!) that updates to all offline-cached resources in a domain
<br>> --- that were requested by pages in the same domain ---  occur atomically as<br>> a group, similar to what Gears does. That leaves one issue, which is the<br>> ability to add new resources as part of such an atomic update; to get that,
<br>> we probably should add an offline-manifest DOM API or <link> type, which<br>> pulls in a JSON manifest and requests all the resources in it.<br><br>That sounds good. Gears team has also considered that you could get
<br>consistent versions without the hard version number we currently have<br>in the manifests.<br><br>It seems like right now, all items in a domain implicitly form an<br>atomic group. Is that right?</blockquote><div><br>
"Right now" as in what I've proposed, yes. Not "right now" as in what's implemented on Firefox trunk :-)<br><br>A slight twist is needed actually: an atomic group consists of all resources in a domain that are used by pages in the same domain. We allow cross-domain references but we do not allow them to create consistency requirements.
<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">A couple issues some Gears people brought up with this:<br><br>* It's likely to significantly slow down revalidation. There could be
<br>many, many resources linked with the programmatic api (again, think of<br>attachments). All these would have to be revalidated each time the app<br>is viewed.</blockquote><div><br>For the specific case of attachments, in our model those could be placed in their own domain. For resources where you actually want to access the contents on the client, wouldn't work.
<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">* It seems like atomic groups and domains are not 1-to-1. Lots of<br>times separate applications are hosted on the same domain but in
<br>different directories. I guess it's not dangerous to revalidate all<br>apps under a domain when any are viewed, but it seems like a waste.<br><br>You could mitigate the first issue by allowing the developer to say
<br>whether a certain resource should be part of the domain's atomic<br>group. I am not sure how to mitigate the second issue except for by<br>telling developers to use separate domains for separate applications.<br></blockquote>
<div><br>That's what I would suggest, yes. <br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Another thought that we had was that it would be good if whatever you
<br>can do with the <link> tag syntax, you can also do programmatically.<br>It may be difficult to hook into IE deep enough to implement the link<br>tag syntax.</blockquote><div><br>I think we're there already (although in our proposal, all you'd have to do is traverse the <link> tags on onload, dynamic changes to the link tags after that have no effect).
<br></div><br>Rob</div>-- <br>"Two men owed money to a certain moneylender. One owed him five hundred denarii, and the other fifty. Neither of them had the money to pay him back, so he canceled the debts of both. Now which of them will love him more?" Simon replied, "I suppose the one who had the bigger debt canceled." "You have judged correctly," Jesus said. [Luke 7:41-43]