4

非常に長い話ですが、サイトに問題があり、サイト内のページ/リンクナビゲーションの間に空白の白いページが点滅していました。Firefoxでのみ発生し、Firefoxの新しいバージョンでのみ発生しました(たとえば、バージョン3.6.xでは表示されませんでした)。

2つの異なるサーバーからの応答ヘッダーを比較した後、他のサーバーから提供されているサイトではこの問題は発生していませんでした。応答ヘッダーに次の問題が含まれていることに気付きました。

Content-Type text/html; charset=UTF-8

問題が発生した私の通常のサーバーでは、応答ヘッダーに次のように表示されていました。

Content-type text/html

そこで、この行を.htaccessに追加すると、問題は解決しました。

AddDefaultCharset UTF-8

私の質問:

  1. 私のサイトのページ間でFirefoxが(10ミリ秒のように)完全に空白の白い画面を点滅させる可能性のある文字セットが指定されていないContent-Typeについてはどうですか?

  2. 問題を修正したので、修正は「OK」ですか?それは安全ですか、それとも何か他のものを壊す可能性が高いですか?

私の簡単なテストでは問題は示されませんでしたが、それが引き起こす可能性のある副作用や、ページの点滅の問題が修正された理由がわからないので、気になります。

4

1 に答える 1

3

あなたのサイトは主に英語のコンテンツを提供していると思いますが、utf-8はほとんどの英語の文字エンコードと互換性があるため、この方法はかなり安全だと思います。そうでない場合は、これらのコンテンツに応じて変更を加える必要があります。

ちなみに、ほとんどのHTTPサーバーにはグローバルなデフォルトの文字セット構成もあり、理論的には.htaccess設定よりも効率的です。また、PHP、Java、言語に関係なく作成されたほとんどのWebアプリケーションでは、アプリケーション自体が使用しているエンコーディングを明確に示すことがベストプラクティスです。

Firefoxの点滅部分については、これまでのブラウザー開発の経験では、応答ヘッダーにエンコードが記載されていない場合、ブラウザーはエンコードを自動的に検出する必要があります。したがって、最初に想定されたエンコーディングが検出されたものと異なる場合、ブラウザはページのリフローを強制する必要があります。大まかに推測すると、実際の理由から、Firefoxメーリングリストの方が適していると思います。

于 2013-01-23T03:05:02.820 に答える