Skip to content Skip to sidebar Skip to footer

Way To Determine/circumvent If An Ajax Request Timed Out?

I have a simple web-page (PHP, JS and HTML) that is displayed to illustrate that a computation is in process. This computation is triggered by a pure JavaScript AJAX-request of a P

Solution 1:

I'm from the other post you mentioned!

Now that I know more about what you are trying to do: monitor a possibly long running server job, I can recommend something which should turn out a lot better, its not a direct answer to your question, but its a design consideration which includes by its nature a more suitable solution.

Basically, unlink the actions of "starting" the server side task, from monitoring its progress.

  • execute.php kicks off your background job on the server, and immediately returns.
  • Another script/URL (lets call it status.php) is available to check the progress of the task execute.php is performing.
    • When status.php is requested, it won't return until it has something to report, UNLESS 30 seconds (or some other fixed) amount of time passes, at which point it returns a value that you know means "check again". Do this in a loop, and you can be notified immediately of when the background task has completed.

More details on an approach similar to this: http://billhiggins.us/blog/2011/04/27/resty-long-ops

I hope this help give you some design ideas to address your problem!

Post a Comment for "Way To Determine/circumvent If An Ajax Request Timed Out?"