我有一个交互式网页,在用户交互时向服务器发出异步请求(加载图像、数据等)。
作为最后阶段,我正在实现 JavaScript 代码,以便正确处理服务器太忙或发生网络拥塞以及请求未得到满足的情况。
在开发过程中,服务器和客户端(浏览器)都在开发机器(本地主机)上运行。
为了测试代码,我必须在本地开发机器上模拟这些情况。
我可以轻松模拟“服务不可用”响应。
但是我怎样才能模拟“完全没有反应”呢?
正在放置
sleep(3600);
在发出请求时执行的 php
的开头是否足以实现我需要模拟的内容?
还是某些东西仍然会返回到浏览器?
在服务器可用性较差的情况下,是否有更好的方法来测试浏览器端代码?
编辑
一种选择是按照 Dave 在其回答中的建议,关闭 在本地主机上运行的服务器。
如果可能的话,我宁愿避免这种情况。
我希望能够错过一些请求并满足其他一些请求。
其背后的想法是在浏览器上运行的客户端 JavaScript 代码将重试失败的请求。
服务器模拟一次请求不可用,客户端重试,服务器给出响应...
最佳答案
您遇到这些情况的唯一方式是,如果您的异步请求的 javascript 从服务器调用数据/文件,而不是从推出您的主要页面的服务器。因此,如果您只是运行一个 apache 实例,那么您将永远不会遇到网络拥塞或不可用的情况。例如,如果您正在运行 apache 作为您的主要 Web 服务器,而在不同的端口上运行 nginx 作为您的内容服务器,那么为了测试它,只需停止 nginx 为您的内容提供服务。
如果你的意思是你想从用户的角度测试你的 web 服务器处于脱机状态,但他们的客户端仍在处理/运行 javascript(假设你的服务器在线进行初始加载/请求),然后将页面加载到你的浏览器并停止您的网络服务器,然后等待它在客户端出错。当然,您需要重新启动 Web 服务器以重新加载文件并在更改后重新测试。
关于php - 在本地开发机器上模拟临时无响应服务器或网络拥塞(Apache/PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23174244/