frenchie
frenchie

Reputation: 52047

adding latency to a web application

I want to slow down my app by adding latency for ajax requests. I have two options: doing it in javascript and doing it server-side. With javascript, I could easily add a setTimeout on my requests but there are about 30 different requests and I'm wondering if there's a better way, with less code.

I want to slow down ajax requests server-side. What's the best way to do it? I'm using about 25 different asmx web services (will be converted to wcf soon) and I'm wondering how to make it so that all requests have 1000ms of latency.

My goal is to change as little code as possible so that I can turn this feature on/off by changing as little as possible.

Thanks for your suggestions.

In case you're wondering why: I'm running on my local machine. I'm going to do a user-testing session and I need to simulate real ajax requests. Without latency, the ajax request happens almost instantaneously.

Upvotes: 3

Views: 283

Answers (4)

btilly
btilly

Reputation: 46542

I would put an http proxy in the way which you control and can make slow.

Since I know Perl best I'd use something like http://metacpan.org/pod/HTTP::Proxy and add a filter method that did nothing but wait a second.

Upvotes: 0

Shai Cohen
Shai Cohen

Reputation: 6249

If you are using jquery for the ajax call, just go into the jquery code file and add the latency there. Would that work?

Look for this line in the main jquery file:

ajax: function( url, options ) {

Add this code right after:

var ms = 1000 //wait time in milliseconds
ms += new Date().getTime();
while (new Date() < ms) { }

ms is the number of milliseconds to wait

Upvotes: 0

Andreas
Andreas

Reputation: 21911

You could add a

System.Threading.Thread.Sleep(1000)

in the OnRequestBegin-Handler or where ever you can intercept the request before doing the actual work.

Upvotes: 4

Kristian
Kristian

Reputation: 21840

you can hook in a timeout event on the server side code before it responds to the ajax request. At least then your ajax's interaction with a latent response is authentic.

Upvotes: 0

Related Questions