Safari で PHP コマンドの更新が機能しないのはなぜですか?
P粉141925181
P粉141925181 2023-09-04 18:39:18
0
2
641
<p>時間のかかる php スクリプトを使用しているため、ユーザーにフィードバックを提供したいと思いました。本質的な問題を解決するためにそれを単純化します。このスクリプトは Firefox ではまったく問題なく実行されます (出力がすぐに更新されます)。ただし、Safari はすべてのコンテンツが生成されるまで待機します。なぜ?この問題はどうすれば解決できますか? </p> <pre class="brush:php;toolbar:false;"><?php ini_set('最大実行時間', 0); header('Content-Encoding: none;'); header('コンテンツタイプ: text/html; charset=utf-8'); $j = 8; $k = pow(2, 10); echo "しばらくお待ちください...".str_pad('', $k)."<br />\n<br />\n"; 流す(); $i = 0; while ($i < $j) { $i; echo "テスト ".$i.str_pad('',$k)."
\n"; 流す(); スリープ(1); } ?></pre> <p>ところで: Chrome はこのページをまったく読み込まず、<code>ERR_CONTENT_DECODING_FAILED</code> が表示されます。 </p> <p>また、</p> も入れてみました。 <pre class="brush:php;toolbar:false;"><IfModule mod_env.c> SetEnv no-gzip 1 </IfModule></pre> <p> .htaccess にありますが、うまくいきません。また、<code>SetEnv no-gzip dont-vary</code> も試してみました。 Safari (および Chrome) に Firefox と同じ動作をさせる方法について何か手がかりはありますか? </p>
<p>php.net で <code>flush()</code>、<code>ob_flush()</code>、<code>ob_start()</code> などについて読みました。 .、そして私は過去 20 年以上にわたり、フラッシュに関するすべての質問に関する Stackoverflow のほぼすべてのコメントを読みました。 <code>ini_set('output_buffering', 'On');</code> または <code>ini_set('output_buffering', 'Off');</code> を追加してみました。 ob_start(null,Chapter 4096<code>header('X-Content-Type-Options: nosniff');</code> および/または<code>header('X-Accel-Buffering: no') ;< /code>。<code>@ob_flush();</code>を<code>flush();</code>の前後に置き、<code>str_pad<を入れてみました/の値を上げますcode> を 2^16 (65,536) に変更しても役に立ちませんでした。</p><p> 残念ながら、ホスティングプロバイダーでは Apache サーバー (PHP 8.1 および FastCGI を実行) を制御できないようです。 Firefox で動作するようになったので、何か正しいことをしているはずだと思います。 </p>
P粉141925181
P粉141925181

全員に返信(2)
P粉684720851

ありがとうhareth py答えを見つけました!

リーリー

$j を 200 に増やし、スリープ時間を 0.1 秒に下げました。 Safari の応答は少し遅いですが、最終的には 1 行ずつ表示されます。 Firefox や Chrome と同じです。

いいねを押す +0
P粉762447363

######編集:######

ob_start("ob_gzhandler") ob_start() のコールバック関数として使用され、圧縮 Web ページをサポートする Web ブラウザに gz エンコードされたデータを送信するのに役立ちます。 ###ソース###### リーリー 出力 (Chrome 上):

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート