On Oct 12, 2007 12:53 PM, Ian Hickson <<a href="mailto:ian@hixie.ch">ian@hixie.ch</a>> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
The problem with isLocallyAvailable() -- as noted by Maciej on IRC -- is<br>mostly one of race conditions. What if the resource was removed in between<br>you asking for it and using it? Or added?<br></blockquote><div><br>
In the contexts for which it was requested, race conditions are tolerable. For example in a mapping application, if you choose the wrong tile as a template for zooming, then you get an ugly transition but that's all. Or you might have a button that opens another offline application, and you want to disable the button if you think that application is not available; here a race condition would probably mean that the button is enabled but pressing it gives you an error page. In these cases isLocallyAvailable can be a useful hint even if it's occasionally wrong.
<br><blockquote> Or what if you go offline (thus<br>changing the rules) in between checking for and using the resource?<br></blockquote>That's why we have the 'whenOffline' parameter.<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I'm going to punt on this for now, pending implementation and author<br>experience. I'm certainly open to suggestions though.<br><div><div></div></div></blockquote><div><br>That's fine.<br> <br>A race-free API seems difficult to design. Because loads are typically asynchronous, I doubt you can do much better than start a regular load, and set a timer to go off and cancel the load and take other action if the load doesn't complete "fast enough". Overkill if all you want is the hint, and since authors can already do that but there's still demand for isLocallyAvailable, I suspect that's not really what's wanted.
<br><br></div></div>Rob<br>-- <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]