These are very important issues that you have addressed. Thanks for sharing the work.
Regards
Ashutosh

On 8/17/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
discuss@jquery.com
http://jquery.com/discuss/



--
Reach1to1 Communications
http://www.reach1to1.com
[EMAIL PROTECTED]
98201-94408
_______________________________________________
jQuery mailing list
discuss@jquery.com
http://jquery.com/discuss/

Reply via email to