This is an amazing set of fixes/updates. I poured through them, made some tweaks, changes, and bug fixes and committed it to SVN.
The big change, from your code, is that 'failure' is now 'error' - to be consistent with the current naming scheme. Keep up the great work! --John On 8/16/06, Taku Sano (Mikage Sawatari) <[EMAIL PROTECTED]> wrote: > With Ajax facilities of jQuery, it is not easy to deal with errors. In > addition, it is inconvenient to repeat reloading the same URL to > observe changes. Please confirm my patch handles these issues. > > [patch for svn.208] > http://pepper.sherry.jp/jquery/newajaxpatch-svn208.patch > > [test page] > http://pepper.sherry.jp/jquery/newajaxfunc.html > > Problems: > - $().load() replaces the HTML regardless of whether the request has > succeeded or failed. Therefore it is impossible to customize an error > message to show. > - Callback functions can't learn if the request has succeeded or not. > - It's true that there are methods that are called on error. But even > if it failed, DOM elements are always replaced, and callbacks are > always called. > - There are no ways to set timeout. In case of a server doesn't respond, > we can't abort the request after a few seconds and display an error. > > Improvements: > - Callbacks for $().load(), $.get, $.post now takes the second argument > which represents a state ("success", "failure", "notmodified"). > - $().load() no longer replaces the HTML on error, if a callback is > supplied. Without a callback, it replaces the HTML on error as it > used to do. > - $().load(), $.get, $.post now can timeout. When it timed out, the state > becomes "failure" and treated as an error. > $.ajaxTimeout(1000); // ms > $().load(); > - Added 2 ajax methods: > $().loadIfModified(); > $.getIfModified(); > These methods set If-Modified-Since header to Ajax requests. They are > useful when we periodically reload the same URL to see changes. > > They work the same way as $().load and $.get if the URL is updated. > When it is unchanged, ().load doesn't replace the URL but does callback. > In that case, the state will be "notmodified". > > Since IE always returns the same cached content for the same URL, it is > normally impossible to check changes. It's true that it is possible to > force not to use cache by appending some random characters as query of > the URL, but then we waste the traffic needlessly. $().loadIfModified() > and $.getIfModified() solve this problem. > > > ---- > Taku Sano > > _______________________________________________ > jQuery mailing list > [email protected] > http://jquery.com/discuss/ > -- John Resig http://ejohn.org/ [EMAIL PROTECTED] _______________________________________________ jQuery mailing list [email protected] http://jquery.com/discuss/
