Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在后台运行ajax页面(Android)_Php_Android_Ajax_Background Process - Fatal编程技术网

Php 在后台运行ajax页面(Android)

Php 在后台运行ajax页面(Android),php,android,ajax,background-process,Php,Android,Ajax,Background Process,我试图通过在页面加载时调用ajax请求在后台处理数据库插入。我面临的问题是,即使从页面(发出ajax请求的页面)移动,它仍然在等待ajax页面中的进程完成 我不希望从ajax页面输出任何内容,只要开始并继续运行,直到所有insert语句都完成。在研究了这个问题之后,我找到了一些解决方案,但它们在我的案例中不起作用。我正在使用以下代码: index.php $(函数(){ $.ajax({ url:'ajax-page.php', 成功:功能(ret) { //没关系,因为我对输出不感兴趣 }

我试图通过在页面加载时调用ajax请求在后台处理数据库插入。我面临的问题是,即使从页面(发出ajax请求的页面)移动,它仍然在等待ajax页面中的进程完成

我不希望从ajax页面输出任何内容,只要开始并继续运行,直到所有insert语句都完成。在研究了这个问题之后,我找到了一些解决方案,但它们在我的案例中不起作用。我正在使用以下代码:

index.php

$(函数(){
$.ajax({
url:'ajax-page.php',
成功:功能(ret)
{
//没关系,因为我对输出不感兴趣
}
});
});
ajax-page.php
ob_end_clean();
标题(“连接:关闭”);
忽略用户中止(true);
ob_start();
回声(“”);
$size=ob_get_length();
标题(“内容长度:$size”);
ob_end_flush();
冲洗();
if(session_id())session_write_close();
//后台进程从这里开始

对于($i=1;$i请尝试在jQuery ajax调用中添加async:true:

$.ajax({
  url:'ajax-page.php',
  async: true,
  success: function() {
    // of no consequence as I'm not interested in output
  }
});

是的,我想你可能以某种方式重写了它。在我本地的apache服务器上尝试了你的代码,没有等到ajax页面循环完成。可能是flush()由于某些原因未执行。请检查浏览器中“开发人员工具”中的“网络”窗格,以查看对ajax-page.php的请求是否关闭。编辑:您正在windows上运行pho吗?请阅读,flush可能无法在windows上按预期工作。我正在使用一个名为
AndroPHP
的应用程序,其工作原理类似于
XAMPP
WAMP在Androidwell上,这可能是问题所在…请尝试在适当的LAMP环境中运行它
ob_end_clean();
header("Connection: close");
ignore_user_abort(true);
ob_start();
echo (' ');
$size = ob_get_length();
header("Content-Length: $size");
ob_end_flush();
flush();

if(session_id())session_write_close();

// background process to start here
for($i=1; $i<=10;$i++)
{
    // perform insert query here
    sleep(1);
}
$.ajax({
  url:'ajax-page.php',
  async: true,
  success: function() {
    // of no consequence as I'm not interested in output
  }
});