views:

129

answers:

2

I have a webpage that uses AJAX to get search results for a page. On the server side I am querying a web service that is very slow - 20 seconds to 2 minutes.

As I understand it, my options are either polling or having a long running request.

AsyncCallback seems to be ideal since the result would be returned as soon as the web service responds and the thread won't be blocked on the server-side.

Is there a better approach to doing this? Do you know of any issues with long running HTTP requests in jQuery?

Update: Yes, I will be caching the response from the web service when possible. I don't have any control over the external web service that I am querying.

+1  A: 

There is only one problem with this approach of user browsing to another page what you can do is cache the results somewhere so you dont end up querying the webservice all the time.

Kapil
Yes, good point. I will be caching the data from the web service when possible.
andyuk
+1  A: 

We are using AsyncCallbacks for a server polling that tipically respons in 4:30 - 5 minutes, and the system runs just fine.

It is worth mentioning that you will get no benefits (performance, response time,etc) except the fact that IIS's worker thread pool will not get depleted if you get too many requests: ie. If we get 2 requests per minute, we will usually have 10 - 12 pending requests.In this case AsyncCallback will make NO difference whatsoever. If we get 100 requests per minute, this means 500 - 600 pending connections, so Async is a must. It's only about managing the thread pool.

Radu094