Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does xmlhttprequest keep connection open after request has been processed?

I have done a simple ajax...

The request and response header both contain the Connection: Keep-Alive

I goggle a bit and saw that the client thus maintain a persistent connection with the server. This support pipelining, where client may send multiple request without waiting for each response.

So i have some questions:

  1. Where does the xmlhttprequest actually open a connection to the server?
  2. Does creating many xmlhttprequest object open their own connect or it send it on a same connection using pipelining...?
  3. I want to handle simultaneous request.. Can i queue the request(store parameters) ..and in the onreadystate provide function to handle it.. i.e. calling the function that make request recursively? or it's not a good idea at all?
  4. When is the connection closed..at what stage?

Other info: I don't want to use jquery or any other librarie for the ajax.You can propose though. i can check how they work. I'm using javascrip and php(codeigniter framework). I want to be able to handle multiple request(2)..and queue request that are made when the limit has been reached.

Thanks in advance :)

like image 484
Alan Tyloo Avatar asked Dec 29 '12 11:12

Alan Tyloo


1 Answers

XMLHttpRequest is an object which let you to request and receive data from server without refreshing the page. It uses HTTP or HTTPS requests. It is basically same as requesting and receiving an HTML page. You may open them synchronous or asynchronous.

XMLHttpRequest.open( Method, URL, Asynchronous, UserName, Password )

Here, Method is HTTP request method to use. See http://www.w3.org/TR/XMLHttpRequest/#the-open()-method

I want to handle simultaneous request.. Can i queue the request(store parameters) ..and in the onreadystate provide function to handle it.. i.e. calling the function that make request recursively? or it's not a good idea at all?

I'd make an array of XMLHttpRequests and handle data and remove XMLHttpRequest from array onreadystatechange. Keep in mind that you will receive a mixed order of asynchronous responses or may not receive a response at all.

When is the connection closed..at what stage?

It is closed right after data is received. Note that keep-alive is about keeping the session alive, not the connection.

like image 50
Ertug Avatar answered Nov 03 '22 00:11

Ertug