JavaScriptとCSSの高速ロード

あなたが知っているかどうかはわかりませんが、

1.スタイルがロードされるまで-ページは表示されません

2.含めたスクリプトがロード(および実行)されるまで、ページはそれ以上表示されません

3.ポイント2から、ある時点では1つのスクリプトのみがロード(および実行)されます。

*ただし、記述によっては、2番目のスクリプトも最初のスクリプトと同時にロードできます(ただし、実行されません)。

4.一度に1つのブラウザーは、1つのホストとの接続を2つ(または4つ?)しか保持しません。

つまり、ブラウザは平均して、6スクリプトを使用してダウンロードするために、サーバーに対して6つの要求を次々に行います。

一般的に、これは画像には適用されません。4つの画像のようなモジラが同時にドラッグします。

しかし、それ以上ではありません!



どうする?





標準ページは

1. 1つのcssファイル

2. 1つのjsファイル

3.フレームワークのjsファイル(およびこれがプロトタイプであるということを示しています!asulous!)

これらのファイルを「フェッチ」するのに平均1〜2秒待機します。 そして、それだけが描かれます。



はい、ダウンロードの半分は「If-Match || If-Modifited」および比較的迅速に処理

一部のファイルがまったく要求されない(ビルトインMin-Max Age)

IEが嫌いな人は誰でも、必要な場合でも尋ねないことを好みます(そして、古いバージョンでは馬鹿のように座っています)



一般的に、それは入門記事でしたので、人々は感じるでしょう...



したがって、これらの問題を解決するために( habrahabr.ru/blog/AJAX/16489.htmlを読んだ後に私に来ました)

記事に記載されているスクリプトを取り、malekがそれを変更しました

スクリプト自体はこちらから入手できます



したがって、スクリプトは元のオプションと同様にオプションとして機能できます

.htaccessに追加

RewriteRule(。* \。Css)compose.php?タイプ= css&ファイル= $ 1 [QSA、L]

RewriteRule(。* \。Js)compose.php?タイプ= javascriptおよびファイル= $ 1 [QSA、L]



そして、2番目のcombine.phpブランチが動作します

そして... jsminで最小化されたスクリプトのみが圧縮され、元の記事のようにサポートされているエンコードで提供されます



または...(ここで最終的に革新です)

HEADER(phpを使用して生成されることが望ましい)に、

link rel = "stylesheet" type = "text / css" href = "= compose_makeref(" css "、$ HEADERcssfile)"



または怖い線

引用:

スクリプト言語= "JavaScript" src = "?= compose_makeref(" javascript "、" scripts / positioning.js、〜brouser.js、〜scripts.js、〜site.js、sc ripts / aculous / lib / prototype.js、 scripts / aculous / src / builder.js、〜effects.js、〜dragdrop.js、〜controls.js、〜slider.js ")" /スクリプト



(SCARY STRINGの元のサイズは204 kb、jsminで最小化されたサイズは133 kb、圧縮サイズは31 kb)

一般的に、combine_makerefを呼び出し、出力で特定のNAMEを取得します。 ファイルが変更されると、どの変更が行われますか(これらは、ファイルのセットとファイルが変更された時間に対して一意です(一般に、これは単純なEタグです))

このファイルは1年でどこかで期限切れになります。

そして、1人が一度それを出荷します! (元のバージョンでは、スクリプトの更新は毎回確認されました)

ファイルにアクセスすると、最適な圧縮オプションが選択され、ユーザーに提供されます。

(.htaccessに追加する必要があります)

RewriteRule(。* \。Cssf)compose.php?タイプ= css&fetch = $ 1 [QSA、L]

RewriteRule(。* \。Jsf)compose.php?Type = javascript&fetch = $ 1 [QSA、L]



まあ-それはすでに元のものよりも最高ですが、一部の人々は尋ねるかもしれません:「PHP経由でアカウントを与えることはクールではないですか?」

時々クール...したがって、最後の「最良の」オプションがあります-代わりにcombine_makeref関数combine_staticrefを使用することです

彼女はヘッダーを発行する段階で圧縮オプションを決定し、ファイルへの静的リンクを提供します...

再度phpコードを呼び出さずにgnixesやその他の迷子で返してください...



うわー、私はそれを追加しました。

まあ、一般的に、私はkamentovを待っています。



もう一回

compose.php

kernel.php




All Articles