views:

110

answers:

2

hello all

i´m doing an ajax request using jQuery and asp.net on this way:

$.ajaxSetup({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    dataType: "json"
});

$.ajax({
            url: "/WebServices/CompareDates",
            data: "{allClients: '" + allClients + "'}",
            success: function(msg) {
                  SuccessCompareDate(msg.d);
            }
      });

This ajax request is do each 1 second, using javascript setInterval. I´m getting the response on average 700ms. But, i need this response in maximum 150ms.

I already use WebMethod instead of webservice but don´t works well too.

In the server is everything ok. In the c# webservice too and it just returns a boolean value. I need performance. Someone can help me? Thanks..

A: 

This is in your development box, I hope. You probably need to look into your server side code and may be even the database . And obviously the smaller the request/response size (you can use tools like Fiddler/Charles to find the size), the faster the response. Looks like you are returning a boolean for your response, how about your request,how big is it ? And Can you actually put a timer in your server side code to see how long it takes to execute ?

ram
thanks Ram.. I wil try it
Felipe Blini
+1  A: 

This is a case where your problem may well be something out of your control, like network latency. There's nothing wrong with your syntax or methodology; there are some factors we can't see though. Here are some debugging paths. Any of them could yield fruit, depending on what exactly you're processing and what data you're passing up and down.

  • It's probably not your server-side code. But just to be sure, have your web service do no processing except to just return a small literal value, and see if there is a time difference.
  • It's probably not your jquery ajax. But just to be sure, try it as a direct request and Pekka suggested.
  • I don't now the size of the data you're passing up. If it is of any size, consider trying pass just a tiny value, after you'd tried first option above.
  • I'm not sure how you're doing the timing. Make sure you get the time difference right at the beginning of the callback method, before any rendering. Sometimes there are rendering problems that can really slow things down. Different ways of doing the same thing can take different amounts of time. A straight javascript .innerHtml for example is usually very fast, but other ways of updating markup can be slow, and it can vary by browser.
  • Similarly, is there a lot of processing involved in putting together the allClients variable? If so, compare your timings starting after such processing.
Patrick Karcher
thanks Patrick.. I wil verify it
Felipe Blini