现在碰到个问题是,ajax调用一个php后,这个php程序需要执行很久,有可能20分钟,前端页面依然需要可以刷新,但是php继续执行
请问这种问题应该如何解决,用什么方法比较完美

解决方案 »

  1.   

    我一般的处理方式就是先在PHP echo一个结果给js 然后 echo 之后继续处理php 的代码。
      

  2.   

    ajax用jsonp的方式啊,异步的,随便你php要执行多久
      

  3.   

    判断 Ajax 有没有提交的数据,有就执行 ajax 提交数据后的逻辑
    没有,就执行其他的业务
    if(isAjax){
    //...
    echo 'ajax';
    }else{
    //...
    echo 'other';
    }
      

  4.   

    如果你要能刷新说明返回值不重要,重要的是让后台执行操作。所以我认为你可以将这个ajax访问的接口作为一个触发器,在后端触发一个事件处理,这样与前端就无关了。
    我的做法是在数据库里写一个表用来做消息队列,然后单独用控制台运行php程序(或java,python什么都行)在后端运行并不断监听这个队列,如果有数据就拿来处理。前端发起ajax请求的时候就直接向消息队列插数据就行了。后端处理完直接更新数据库表就行了。比如在消息队列里加个状态列表示完事了。