2012-01-11 17 views
0

Safariで常にレンダリングするとは限りません。それは空白のページとして表示されます。アクティビティウィンドウを見ると、約のインスタンスが表示されます:空のが読み込まれています。Safariにページが読み込まれません。アクティビティ約:空白のウィンドウリストインスタンス

ページを更新するだけで問題が解決されます。

これは非常に信頼性高く複製でき、Safariにのみ影響します。

誰もこれまで見たことがありますか?

答えて

1

問題は、このプロジェクトに関連する2つのサイト間のクロスサイトのクッキーを作成するにはJavascriptを生成されたページ上のコントロールであったが、

を解決しました。 Safariはサイト間のクッキーを作成しようとする試みを拒否することが非常に厳しく、これが結果として生じるように見えます。

コントロールを削除すると、Safariで一貫してページがレンダリングされました。

1

私は同じ問題を抱えていますが、Google Chromeでも発生します。たぶんWebkit関連の問題?ページソースを見ると、ソースが適切に読み込まれていることがわかりますが、私の場合、コンテンツdivはレンダリングされません。要素を検査しようとすると、divが表示されます。エラーコンソールには何も表示されません。私はこれについての修正を考え出しています。成功すれば私は報告します。

編集:解決済み!

ページは動的に生成されていますか?私は、Content-Lengthヘッダーが送信されても​​その値が正しくない場合、ChromeとSafariの両方がページを正しくレンダリングできないことが分かりました。私は明示的にヘッダーを送信しませんでしたが、私たちはカスタムフロントエンドでWordPressバックエンドを使用しており、ヘッダーを送信したwp-blog-header.phpが含まれています。私はwp-load.phpに切り替えて、不要なヘッダーが送信されないようにしました。

さらに、両方のブラウザには、レンダリングを開始する前に受信する必要のあるデータ量に制限があります。 Safariのしきい値はChromeの場合約1 KB、Chromeの場合約2 KBと思われます。私のページはそれよりも長くなっていましたが、この時点で問題が解決された理由はキャッシュだと思われます。

私はページの最後にフラッシュを試みましたが、ユーザー空間の出力バッファリングを使用し始めたときに問題が完全に解決されました(そして、私がいている間に自動圧縮を使用することに決めました)。今私のページの形式は次のとおりです。

<?php ob_start('ob_gzhandler'); ?> 
<!-- Static and dynamically generated content --> 
<?php ob_end_flush(); flush(); ?> 

Safariのキャッシュを消去した後、レンダリングの問題を解決しました。

+0

ヒントをありがとう。 Safariがそのレンダリングをどのように処理するかについて知っておくとよいことです。 –

関連する問題