文字セットを指定する/Specify a character set公式詳細HTMLヘッダーにcharset(文字セット)がないという注意です。 文字セットがないと、HTML読み込み後、ブラウザーが文字コードの自動判定処理をするので、表示が遅くなるという理屈です。 HTMLでの対策HTMLのHeadにcontent-typeでcharsetも指定してしましょう。<html> Webサーバーでの対策Webサーバー側の設定で変更できます。ApacheのConfや.htaccessにて、HTMLはSJISだと指定すれば、 AddType "text/html; charset=Shift_JIS" .html ただ、必ずしもすべてのHTMLファイルが同じCharsetとは限らない。(UTF-8とShift_JISはよく混在している。)指定する時は、よく十分気をつけましょう。ブラウザーによっては、こちらを優先してHeadのcontent-typeを無視して文字化け起きることが多々あります。 Webアプリケーションでの対策あるいは、GAEなどのServletですとcontentTypeにtext/htmlとだけでなく、charsetも指定しましょう。response.setContentType("text/html;charset=UTF-8"); JavaScript の解析を遅延する/Defer parsing of JavaScripttwitterのwidgetとか手をだしにくくて、解決できないことが多いですがGoogle Analyticsでの対策もしGoogleのアクセスログ解析ツールのAnalyticsを使っていたら、古いバージョンのタグを挿入していないか確認してみましょう。そしてHeadに追加する方式の最新のAnalyticsのタグを使いましょう。 Google Analytics 非同期トラッキング コードとは HTMLでの対策一部、ChromeやFirefoxですとscriptにasync属性を指定すると、非同期でScriptを読み込むので表示が速くなります。HTML5の仕様として策定中です。<script async></script> 対応していないブラウザーですと、Googleが推奨しているような、後でScriptタグを挿入するというやり方になります。
Google Plus Oneボタンなど、非同期対応しているものも増えています。 ただ、<head>の中が非同期コードであふれそうですが defer属性とは別の問題です。IE系ブラウザーが対応している、Scriptタグのdefer属性ですが<script defer></script> それに、通常実行は、たいして時間かからないか、あるいは時間がかかる処理は非同期で行うので、効果は薄いと思います。 |