在本地开发机器上模拟临时无响应服务器或网络拥塞(Apache/PHP)


Simulating on local development machine a temporary non-responding server or network congestion (Apache/PHP)

我有一个交互式网页,在用户交互时,它会向服务器发出异步请求(加载图像、数据等)

作为最后一个阶段,我将实现JavaScript代码,以便正确处理服务器太忙或出现网络拥塞且请求不满足的情况。

在开发过程中,服务器和客户端(浏览器)都在开发机器(localhost)上运行。

为了测试代码,我必须在本地开发机器上模拟这些情况。

我可以很容易地模拟"服务不可用"的响应。

但是,我如何模拟"根本没有响应"?

正在放置

sleep(3600);

php的开始,当请求被执行时,是否足以实现我需要模拟的内容?

或者某些内容仍然返回到浏览器?

有没有更好的方法在服务器可用性较差的情况下测试浏览器端代码?

编辑

一种选择是按照Dave在回答中的建议,关闭运行在localhost上的服务器。

如果可能的话,我宁愿避免这种情况。

我希望能够错过一些请求并满足其他一些请求。

这背后的想法是,浏览器上运行的客户端JavaScript代码将重试失败的请求。

服务器模拟一个请求的不可用性,客户端重试,服务器给出响应。。。

您遇到这些问题的唯一方法是,异步请求的javascript是否从服务器调用数据/文件,而不是从推送主页面的服务器调用。因此,例如,如果您只是运行一个apache实例,那么您就永远不会遇到网络拥塞或不可用的情况。例如,如果您正在运行apache作为您的主web服务器,而nginx在另一个端口上作为您的内容服务器,那么测试它只是停止为您的内容提供服务的nginx。

如果你的意思是,你想从用户的角度测试你的网络服务器处于离线状态,但他们的客户端仍在处理/运行javascript(假设你的服务器在初始加载/请求时处于在线状态),那么在浏览器中加载页面,停止你的网络服务,然后等待它在客户端出错。当然,您需要重新启动web服务器来重新加载文件,并在更改后重新测试。