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) <
mikage@...> 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
>
discuss@...
>
http://jquery.com/discuss/>
--
John Resig
http://ejohn.org/jeresig@...
_______________________________________________
jQuery mailing list
discuss@...
http://jquery.com/discuss/