3

我想通过增加 ajax 请求的延迟来减慢我的应用程序。我有两个选择:在 javascript 中执行和在服务器端执行。使用 javascript,我可以轻松地在我的请求上添加一个 setTimeout,但是大约有 30 个不同的请求,我想知道是否有更好的方法,代码更少。

我想减慢服务器端的ajax请求。最好的方法是什么?我正在使用大约 25 种不同的 asmx Web 服务(很快将转换为 wcf),我想知道如何使所有请求都有 1000 毫秒的延迟。

我的目标是尽可能少地更改代码,以便我可以通过尽可能少的更改来打开/关闭此功能。

感谢您的建议。

如果你想知道为什么:我在我的本地机器上运行。我要做一个用户测试会话,我需要模拟真正的 ajax 请求。没有延迟,ajax 请求几乎是瞬间发生的。

4

4 回答 4

4

你可以添加一个

System.Threading.Thread.Sleep(1000)

OnRequestBegin-Handler 或任何你可以在执行实际工作之前拦截请求的地方。

于 2012-05-18T18:25:13.307 回答
0

如果您使用 jquery 进行 ajax 调用,只需进入 jquery 代码文件并在那里添加延迟。那行得通吗?

在主 jquery 文件中查找这一行:

ajax: function( url, options ) {

在之后添加此代码:

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

ms是等待的毫秒数

于 2012-05-18T18:15:49.427 回答
0

您可以在服务器端代码响应 ajax 请求之前挂钩超时事件。至少你的 ajax 与潜在响应的交互是真实的。

于 2012-05-18T18:17:10.500 回答
0

我会以您控制的方式放置一个 http 代理,并且可以使其变慢。

因为我最了解 Perl,所以我会使用http://metacpan.org/pod/HTTP::Proxy 之类的东西,并添加一个过滤器方法,该方法只需要等待一秒钟。

于 2012-05-18T18:18:44.477 回答