我知道php不能多线程,但是可以模拟,我的需求是,在前台页面,用jquery发起一个get请求,后台php执行代码,在代码里,需要向几十个webservice请求数据,php不能多线程,如果循环一个一个去请求,时间太长,能不能想办法,使用类似多线程的方式,同时请求几十个webservice,并且,每个从webservice获取到的数据,处理成json格式,都实时返回到浏览器交给jquery,让jquery及时填充页面中需要填充的数据,直到所有数据获取完毕,整个流程结束。
各位大侠有啥比较好的解决方案吗?跪求!
我想过,在前台,直接向几十个webservice分别发起请求获取数据,绕过后台,但是这又面临跨域访问问题,而且,我也不想把那么多webservice地址暴漏在前台。

解决方案 »

  1.   

    几十个webservie...这是个神码世界.这种场景我还是建议在服务器端做一个服务程序来抓你需要的数据。抓了结果交给web返回给你的cs部分或者直接返回给cs部分。
      

  2.   

    本帖最后由 xuzuning 于 2012-09-04 07:01:18 编辑
      

  3.   

    我知道2楼的意思,最开始我就是想用这种方式实现。
    我直接在客户端循环发起10个get请求到服务器,但是服务器返回的数据,总是一起返回,并不是一个一个返回,所以我对这种方式产生了怀疑。
    我在想,是不是因为这10个get请求,都是占用的一个http连接才导致的这个结果
      

  4.   

    我直接在客户端循环发起10个get请求到服务器,但是服务器返回的数据,总是一起返回,并不是一个一个返回难道是这样的吗?你请求的任务执行时间都差不多的话,你就会感觉服务器是一起返回的
    实际上你这 10 个请求是10个独立的 http 连接
    测试的时候最好不要请求同一个程序文件,这样就可以在不同的程序文件中加入 sleep 函数来模拟长时间的运算。并且测试文件不要启用 session 以防止 session 临时文件被锁定而导致顺序执行
      

  5.   

    感谢xuzuning,问题解决了,确实是因为程序执行时间差不多,导致感觉显示是一致的,怪我测试不够详细。