我已经构建了一个经常通过NSURLConnection连接到我的服务器的iOS应用程序。这是一个非常标准的设置;应用程序将各种信息发送到服务器,服务器根据收到的信息返回JSON响应。
在我构建的一个新功能中 - 它需要一个特定的PHP脚本来进行大量处理,而不是在服务器完成后给应用程序一个响应,我想在它之前给应用程序一个响应开始处理 - 这是我无法实现的。
PHP的基本纲要如下:
<?
echo "Output buffering is " . ini_get('output_buffering') . "<br />";
// NM testing ob buffer technique
ob_start();
$profiles_ar = array(
"reach" => 10,
);
$return_ar = array(
"success" => $profiles_ar['reach'],
);
echo json_encode($return_ar); // Note the buffer must be "filled" with 4096 characters (bytes?) for ob_flush() to work before sleep() occurs.
for($i = 0; $i < 5000; $i++)
{
echo " ";
ob_flush(); flush;
}
echo $buffer;
ob_flush();
flush();
ob_end_flush();
for($i=0;$i < $profiles_ar['reach']; $i++)
{
sleep(1);
}
echo "finshed: ".$i;
ob_flush();
flush();
ob_end_flush();
?>
上面的脚本在浏览器中完美运行 - {“success”:10}立即输出。如果从我的iOS应用程序访问此脚本,则在for循环结束后收到{“success”:10}。
有关如何解决此问题的任何想法?任何帮助将不胜感激。