Boris Zbarsky wrote:
On 2/24/10 1:04 PM, David Flanagan wrote:
If I've been following the thread correctly, the justification for an
asynchronous API was that localStorage is a mess, or something like
that. I'm not aware of what the issues are with localStorage

In brief, the fact that if you have multiple threads or processes rendering web pages from the same site, then they can race each other.

could you justify an asynchronous cookie API more explicitly? This isn't a
blocking I/O issue, is it? Surely browsers will have the relevant
cookies already cached in memory, won't they?

Yes, but cookies are not immutable.

In simple use cases, a developer just wants the cookie value

Only once?  With a sync API this code:

  if (document.cookie == document.cookie) {
    alert("pass");
  } else {
    alert("fail");
  }

will sometimes alert "fail" depending on what other web pages are loading at the same time and what their HTTP headers look like and what their scripts are doing.

-Boris


[Changing the subject line back]

Doesn't the HTML5 storage mutex fix this?

With the storage mutex mechanism it is possible to create a safe (no way to observe volatility) synchronous version of getCookies(), isn't it? The downside is that getCookies() might have to block while waiting for the mutex. But is that really a reason not to allow synchronous (blocking) access to cookies? Given that the storage mutex is already in the spec, doesn't it make sense to define a better synchronous API in addition to the new asynchronous API?

        David

Reply via email to