Re: Identification of documents in Web applications

Noah,

On Mar 10, 2011, at 11:11 AM, Noah Mendelsohn wrote:

> 
> On 3/10/2011 8:56 AM, John Kemp wrote:
>> How do you pass around that hunk of Javascript which identifies a particular state? Do you want to?
> 
> I hate to be sending so many replies on this thread, but I really feel you missed the point of my original proposal [1].

With all due respect, I wasn't concentrating in these last emails only on your proposal, but on trying to point out that:

i) There are cases which are looking for URIs which identify "application state" (which I think is *like* a URI created in the HTML5 history API) and that this is somewhat related to what Raman and Ashok have been writing about, and is also roughly what you were talking about with regard to the "simulator" case.
ii) There was some overlap between what you are proposing and what Jeni is proposing, which has resulted in talking at cross-purposes about the same thing (but I think you have resolved that)

I apologize if none of that was clear. I'm sorry you think I missed the point of your proposal, but I can state for the record that I agree very much with what you are proposing for the "document" case. 

> My whole point is that for some Ajax applications (the simulator) it's appropriate to think about identifying application states,

Yes, exactly. 

> but for many other Ajax applications (resume browser, email reader, twitter, maps) it's better to realize that we're using Ajax to navigate among documents, and to use more conventional URIs to identify those documents rather than identifying the "state of the app".

Again, I agree.

> 
> Using Google Maps as an example, the URI at [2] is >not< an identifier for the state of the Ajax application I used to create it; it's an identifier for a map, centered at a certain latitude/longitude, at a certain zoom level, and with the Stata Center marked on the map.

Yes, I know.

> We can demonstrate that I'm right be accessing this URI from a non-Javascript enabled browser. Go ahead, try it. Turn off Javascript in your browser, and navigate to [2]. If [2] were an identifier for an Ajax state, nothing would happen. In fact, you see the map, just without all the Ajax interactivity.
> 
> That's exactly my point. If Twitter did this, we wouldn't be having this silly #! debate. Twitter could use the same URIs it always have, with an Ajax implementation on some clients and non-Javascript on others. You can't do this stuff with fragments, because with Javascript off, you require that all the parameters be sent to the server, and with # they can't be (because HTTP forbids fragments in the Request-URI).
> 
> So, that's why my post is encouraging use of the document abstraction, and non-# URIs, in cases where they reasonably apply. In practice, this can only happen when the HTML 5 APIs become more widely available, but I believe it's the right architectural direction.

I completely agree with you that this is the right architectural direction for supporting the case you are talking about. I still think you need to think about the simulator case you mention, and whether/how resources from that are exposed to the Web. Do you disagree with that? The HTML5 history API might be the right approach, but may not be enough - I don't know the answer to that myself. 

Regards,

- John

> 
> Noah
> 
> 
> [1] http://blog.arcanedomain.com/2011/03/identifying-documents-in-web-applications/
> [2] http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=Stata+Center,+Vassar+Street,+Cambridge,+MA&aq=0&sll=37.0625,-95.677068&sspn=50.37814,114.169922&ie=UTF8&hq=&hnear=Stata+Center,+32+Vassar+St,+Cambridge,+Middlesex,+Massachusetts+02139&z=15&iwloc=A
> 

Received on Thursday, 10 March 2011 16:37:56 UTC