Regarding the abort possibility for jsonp (#5500 => #3442), this brings us back to the idea of returning an abstraction on top of the actual xhr/script hack/whatever.
I was curious as to why the whole ajax typology wasn't implemented with a factory pattern: you would call something like XHRFactory.get(options) which would return an abstraction with the same interface as an xhr. This would hide routing into the factory code and all the hacks into the different abstractions (including handling the replacement of ? with the callback name, creating a script tag -- or an iframe in my own implementation of jsonp--, etc, etc) and keep the ajax function clean (calling everything as if it were pure xhr no matter the situation). Each implementation that do not implement some features (like header manipulation for script hacks) would simply do nothing when those methods are called. Plus, the interface could be enhanced to handle the .bind(type,func) we talked about in the other thread (and deferred error/success/etc callback bindings). Furthermore, each implementation would be replaceable by user code (we could keep the xhr setting active, it would only act on pure xhr calls). I'd be willing to give it a try (knowing you would more than surely have to clean it up to jQuery's standards after), just let me know if I'm crazy or something. 2009/11/12 John Resig <jere...@gmail.com> > I created some tickets for the missing features: > http://dev.jquery.com/ticket/5500 > http://dev.jquery.com/ticket/5501 > http://dev.jquery.com/ticket/5502 > > --John > > > > On Thu, Nov 12, 2009 at 9:58 AM, John Resig <jere...@gmail.com> wrote: > > Hi Dave - > > > > This so much for pulling this together, it's very useful. > > > > I see some definite gaps that can be closed, when looking at this (for > > script/json/jsonp): > > - beforeSend/ajaxSend > > - dataFilter > > - processData > > - timeout > > > > Now, error and ajaxError could be handled - but to a limited degree. > > If we implement timeout support then we could have the error/ajaxError > > occur if the timeout happens - but we can't do it for malformed > > JSON/script/jsonp, since the browser doesn't provide us with that > > information. At best the script would come in, throw an exception, and > > then the timeout would happen a couple seconds later. If we were to > > make this change the timeout would have to happen automatically as > > well (which is different from the other request types). > > > > Cannot work with script/json/jsonp and should be documented as such: > > - async > > - contentType > > - ifModified > > - username / password > > - type (POST) > > - xhr > > - error/ajaxError for malformed data > > > > --John > > > > > > > > On Wed, Nov 11, 2009 at 7:55 PM, Dave Methvin <dave.meth...@gmail.com> > wrote: > >> Re: http://groups.google.com/group/jquery-dev/msg/70b913e489c9fc8f > >> > >> Here is what I came up with. I built this mostly by looking at the > >> source to ajax.js so let me know if there is anything that looks > >> wrong: > >> > >> > http://spreadsheets.google.com/ccc?key=0Aj5JJFjq9rZDdC1OQjJOcmtjTmtBUVdXV2NPczE2R2c&hl=en > >> > >> Does anyone see any errors, or have suggestions on different > >> presentation? > >> > >> -- > >> > >> You received this message because you are subscribed to the Google > Groups "jQuery Development" group. > >> To post to this group, send email to jquery-...@googlegroups.com. > >> To unsubscribe from this group, send email to > jquery-dev+unsubscr...@googlegroups.com<jquery-dev%2bunsubscr...@googlegroups.com> > . > >> For more options, visit this group at > http://groups.google.com/group/jquery-dev?hl=. > >> > >> > >> > > > > -- > > You received this message because you are subscribed to the Google Groups > "jQuery Development" group. > To post to this group, send email to jquery-...@googlegroups.com. > To unsubscribe from this group, send email to > jquery-dev+unsubscr...@googlegroups.com<jquery-dev%2bunsubscr...@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/jquery-dev?hl=. > > > -- You received this message because you are subscribed to the Google Groups "jQuery Development" group. To post to this group, send email to jquery-...@googlegroups.com. To unsubscribe from this group, send email to jquery-dev+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/jquery-dev?hl=.