0

オンライン データベース ダンプ ツールを実行しています。

しかし、データを出力すると、ダンプに必要な長さを計算できるようになるまで PHP が待機するため、API が機能しているかどうかについてユーザーが混乱する可能性があります。

チャンクで応答を送信するにはどうすればよいですか?

追加してみました:

header('Transfer-Encoding:chunked');

しかし、Chrome ブラウザはそのページを開くことができませんでした。

私は何をする必要がありますか?

ありがとう!


回答: データを送信する前にエンコードする必要があります。

function chunk_encoding($chunk) {
    printf("%x\r\n%s\r\n", strlen($chunk), $chunk);
    flush();
    ob_flush();
}
4

1 に答える 1

3

ユーザーに 3 GB のデータを大量に送信するのは賢明なアプローチではありません。このユーザーが DSL 接続 (たとえば 6MBit としましょう) を持っていると仮定すると、すべてのデータが使用できるようになるまで (コピーなど)、最大 69 分間待たなければなりません。さらに、このデータがロードされているタブを閉じることは許可されていません。そうしないと、データが失われます。そして最後に、この量のデータを表示することを余儀なくされた場合、ブラウザーはメモリを消費するモンスターに成長します。

より良い解決策は、サーバー上でファイルを生成し、ユーザーがリンクを表示してこのファイルをダウンロードできるようにすることです。このようにして、ユーザーはバックグラウンドでファイルをダウンロードし (任意のダウンロード マネージャーを使用している可能性があります)、ローカルでデータを取得できます。

于 2012-06-28T09:37:56.553 に答える