web异步显示 php,PHP中的异步Web服务

我从一些Web服务获取信息,但我希望我所调用的方法只是异步,因为请求花费的时间太长,以至于网站加载缓慢.

我目前正在使用普通的SOAP调用

$client = new SoapClient("http://xxxx.com/webservices/json.asmx?WSDL");

$result = $client->__soapCall($id, $parameters);

有谁可以帮助我吗

最佳答案 这种方法通常不是服务器端的异步策略,因为这不符合php的工作方式.而是应用此策略:

您处理请求并将html页面响应给具有容器元素的客户端,其中缓慢的API调用的结果将转移到该客户端.但容器是空的或包含占位符.此外,还提供了一个客户端逻辑,即javascript,它将处理程序注册到客户端的文档就绪事件.在该处理程序内部,它将ajax请求返回给服务器,通常每个API调用必须执行一个请求.在ajax请求中接收的有效负载用于使用最终数据填充html内的容器.

这样,页面/视图本身的生成和呈现与完全等待API调用分离.此外,该策略是透明的,用户可以看到提取的附加数据使得等待时间从心理学的角度来看更容易接受.

您可以想到该策略的一种变体,它已经注册了基于服务器的作业,执行实际的API调用并缓冲结果.这样你就可以保持往返发送页面并等待ajax调用进入的延迟缓慢.但是这里的挑战是保持这些作业与原始请求之间的连接以及随后的ajax调用一个简单的任务.通常,该优点根本不能证明额外的努力.

因此,作为底线,可以说通常在纯PHP中没有实现异步策略.相反,原始请求被分成几个单独的请求.只处理第一个请求并立即响应,与任何慢速API调用无关.然后,并行地,ajax请求触发API调用并将结果信息添加到对第一个请求的响应中.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值