flash() 関数が動作しないように見える場合があります
インターネットで次のプログラムを見つけました。彼のコメントでは最初の文が非常に重要であると書かれていましたが、最初の文はまったく機能せず、300 個のスペースが出力されないことがわかりました。最初の文を削除しましたが、結果はまったく同じでした。なぜですか?
for($i = 1; $i <= 300; $i++ ) print(" ");文は非常に重要です。キャッシュの構造は、コンテンツが特定のサイズに達した場合にのみブラウザから出力できるようになります
// つまり、キャッシュのコンテンツが特定のサイズに達しない場合は、プログラムの実行が完了するまでは出力されません。
// テストの結果、このサイズの下限は 256 文字であることがわかりました。これは、今後キャッシュによって受信されるコンテンツが
// 継続的に送信されることを意味します。
For($j = 1; $j <= 20; $j++) {
echo $j." "; // この部分はキャッシュの新しい内容を絞り出して On に表示しますブラウザ
sleep(1); // プログラムを 1 秒間「スリープ」させます。これにより、効果をより明確に確認できるようになります
}
?>
私は自分でプログラムを作成しましたが、ob_flush( )flush()に変更したら最初の項目が出力されなくなったように記憶していますが、flush()ではバッファの内容がすぐに出力されないのはなぜでしょうか?
ob_end_flush(); は、ASP の response.end とは異なるようです。 ob_end_flush(); の後でも、次の内容が出力されないようにする方法はありますか? ob_start( ; ";
ob_end_flush();
?>
ディスカッションへの返信(解決策)
バッファがいっぱいになったり、送信が完了したときに受信コンテンツを解釈する現象があるのはIEだけです
スペースはHTML要素ではなく、いくつあっても表示されるのは1つだけです
flash() の機能は、phpシステムバッファの内容をクライアントにプッシュすることです
ob_flush() の機能は、 php ユーザーバッファを php システムバッファに移す
ob_end_flush() ob_end_clean() の機能は、php ユーザーバッファの内容を php システムバッファにプッシュし、php ユーザーバッファを閉じることです。 ob_end_clean() の機能は、クリアすることです。
ob_start()の後のob_end_clean()のみがresponse.endと同等です
私はまだですシステムバッファとユーザーバッファについてはよく理解できず、オンラインで見つけることができません。情報には、PHP がマルチレベルバッファをサポートしているということだけが記載されています。 nレベルのバッファを作成できるようですが、バッファ内にバッファを構築できるのでしょうか。この点において、PHP は ASP よりも複雑です。
システムバッファは、php の出力バッファを指します。そのサイズを制御するには、output_buffering を使用します。
php プログラムが出力するとき、それがいっぱいになるか、プログラムが終了すると、そのバッファに保存されます。
flash() は必須です その中のコンテンツを出力します
ユーザーバッファは ob_start() で開かれたバッファを指します、各 ob_start() は 1 つであり、ネストが許可されます
このコードを試してみてください、 IE、Firefox、Chrome では問題なく動作しています。
1 |
|
サーバー側のプッシュデータをクライアント側でリアルタイム表示する問題ですが、実はWebサーバー、ブラウザ、コードの3つの側面から影響を受けます。
まずプロセス全体を理解する必要があります:
Web サーバーにもバッファーがあり、このバッファーのサイズは、サーバーがクライアントのブラウザーにプッシュされるまでに到達するバイト数に関係します。
次に、ブラウザにもバッファがあり、バイト数を受信した後に表示されます。
コードは、いくつかの空白を埋めるだけで、ブラウザーをだましてコンテンツをすぐに表示させます。問題はサーバー側にある可能性があり、サーバー側ではデータがクライアントにまったく送信されません。
サーバーの立て方ですが、デフォルトではApacheが設定されているようです。
さらに、ブラウザごとにバッファに関する異なる規定があります。複数のブラウザをサポートしたい場合は、バッファをできるだけ大きくする必要があります。
iis magager - system.webServer/handlers responseBufferLimit は 0 に設定され、
php.ini - Output_buffer =Off
for($i = 1; $i
Float モデレータの回答を読んでマークしてください
このコードを試してください、私はここにいますIE、Firefox、Chrome で問題が発生します。
ありがとうございます。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

PHPロギングは、Webアプリケーションの監視とデバッグ、および重要なイベント、エラー、ランタイムの動作をキャプチャするために不可欠です。システムのパフォーマンスに関する貴重な洞察を提供し、問題の特定に役立ち、より速いトラブルシューティングをサポートします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

Laravelは、着信リクエストでHTTP動詞処理を簡素化し、アプリケーション内の多様な運用管理を合理化します。 Method()およびisMethod()メソッドは、リクエストタイプを効率的に識別および検証します。 この機能は、建物に不可欠です

ストレージ:: Laravelフレームワークのダウンロード方法は、ファイルストレージの抽象化を管理しながら、ファイルのダウンロードを安全に処理するための簡潔なAPIを提供します。 サンプルコントローラーでストレージ::ダウンロード()を使用する例は次のとおりです。
