Results 1 to 4 of 4

Thread: ajax synchronous request, page refresh and the error

  1. #1
    Join Date
    Jan 2007
    Location
    Chennai, Tamil Nadu, India
    Posts
    31
    Thanks
    5
    Thanked 0 Times in 0 Posts

    Default ajax synchronous request, page refresh and the error

    Hi,
    I have been using asynchronous requests for a long time. so the response was processed in a callback function. I thought of not using async so i made synchronous requests. The reason is that i dont have to have two more lines for checking the status and the onreadystatechange....

    my synchronous requests would be like this...

    Code:
    var jax = createAjax(); // this function returns the XMLHTTPRequest object
    jax.open('POST',url,false); //here false is to do sync request.
    jax.setRequestHeader('Content-Type: application/x-www-form-urlencoded');
    jax.send(parameters);
    // once the above line is executed the process waits for the response and when it gets the response form the server then the next line is executed.
    alert(jax.responseText); // here i process the response text.
    so from the code you can understand that there is no need of a callback function and if conditions to check ready state... ...

    So there is no problem in the above code. The problem araises here...

    if i press the F5 (refresh) key or do a page refresh when the process is waiting for the response i get an (NS ERROR - firefox ( i have not yet checked that in IE browsers) (javascript error) though the process completes successfully. why?

    Do we have to check whether the page is navigating away while in synchronous operation and abort the request?

    or what could be the reason for the error. This will not happen in async requests because that is also the reason for async...

    so i give a sync request and before the response is received if i navigate away or reload the page i get the error.

    ???

  2. #2
    Join Date
    Mar 2005
    Location
    SE PA USA
    Posts
    30,495
    Thanks
    82
    Thanked 3,449 Times in 3,410 Posts
    Blog Entries
    12

    Default

    That's a good question, I really don't know. Though I believe that the async request is the preferred method because the sync request stops script processing (just like an alert does) until it is completed, often an undesirable circumstance. If the async request solves this problem as well, it's worth the few extra lines of code.
    - John
    ________________________

    Show Additional Thanks: International Rescue Committee - Donate or: The Ocean Conservancy - Donate or: PayPal - Donate

  3. #3
    Join Date
    Jan 2007
    Location
    Chennai, Tamil Nadu, India
    Posts
    31
    Thanks
    5
    Thanked 0 Times in 0 Posts

    Default why not, but...

    async request. the familiar one and as i had stated in my first post i am comfortable with that... i just want to know behind the scene aspect.

  4. #4
    Join Date
    Mar 2005
    Location
    SE PA USA
    Posts
    30,495
    Thanks
    82
    Thanked 3,449 Times in 3,410 Posts
    Blog Entries
    12

    Default

    Well, the details would depend upon the the details of the error, if any. But most likely it is similar to what I already stated. That would be that the browser is processing the sync request which has priority over other processes. It would be sort of like if you had an alert up on the screen and tried to refresh. Only in that case the browser would simply not allow it because it knows not to, giving you a 'thunk' sound (if default sounds are enabled on your system). With the sync request, the browser doesn't really know what's happening, it's not programmed to, it just knows that it is waiting for a process to complete before it is allowed to do the next thing. Hence the error.
    - John
    ________________________

    Show Additional Thanks: International Rescue Committee - Donate or: The Ocean Conservancy - Donate or: PayPal - Donate

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •