2

同様の質問を見つけましたが、これほど具体的なものはありません。次のコードは、問題を再現する簡易版です。

<?php 
function addProgressText($texto)
{
  echo '<script type="text/javascript">'; 
  echo 'document.getElementById("mensajesEnProgreso").innerHTML += "'.$texto.'";';  
  echo '</script>';
  flush();
  ob_flush();
}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width" />
<title>TEST - Flush for Android</title>
</head>

<body>
  <div id="divEnProgreso">
    <p id="mensajesEnProgreso"></p>
  </div>

<?php
addProgressText("Init...");
sleep(5);
addProgressText("OK<br>Step 1... ");
sleep(5);
addProgressText("OK<br>Step 2... ");
sleep(5);
addProgressText("OK<br>Step 3... ");
sleep(5);
addProgressText("OK<br>FINISHED");
?>
</body>
</html>

コードは、Chrome、Firefox、および IE では期待どおりに動作します (手順を 1 つずつ表示します) が、Android ブラウザーからコードを開くと、フラッシュが機能せず、完了時にすべてが一度に表示されます。

問題の原因に関するヒントはありますか? ありがとう

4

1 に答える 1

0

その理由は、間違いなく Android ブラウザーの 4K バッファリングです。唯一のオプションは、このバグ レポートで説明されているように、出力を 4K にパディングすることです。

于 2011-12-20T12:40:04.387 に答える