5

yahoo メールのソース コードを表示すると、次のようlinkな記号を使用したタグ内に複数の css ファイルが&表示されます。

href="http://mail.yimg.com/zz/combo?kx/ucs/uh/css/271/yunivhead-min.css&kx/ucs/uh/css/221/logo-min.css&kx/ucs/avatar/css/17/avatar-min.css"

各ファイルを分離し、単一の http リクエストを使用してすべてをロードする方法を知っている人はいますか?

4

5 に答える 5

1

この場合、css ファイルを 1 つの応答に結合するスクリプトがあるようです。

スクリプトへのパスはhttp://mail.yimg.com/zz/combo. CSS ファイルへのパスを含むいくつかのパラメーターを受け入れます。これらは結合され、場合によっては縮小されます。

-minURLをいじってみると、URL から -Prefixes を削除できることがわかります。その代わりに、縮小されていない CSS ファイルが返されます: http://mail.yimg.com/zz/combo?kx/ucs/uh /css/271/yunivhead.css&kx/ucs/uh/css/221/logo.css&kx/ucs/avatar/css/17/avatar.css

CSSminなど、いくつかの CSS ミニファイアがあります。しかし、これは Yahoo ページなので、おそらく独自の CSS コンプレッサーYUIを使用しています。仕組みの詳細については、http://developer.yahoo.com/yui/compressor/#workを参照してください。

于 2012-04-11T07:35:59.680 に答える
1

詳細はよくわかりませんが、URL は名前のないパラメータとして CSS ファイルを含むクエリ文字列のように見えます。

http://mail.yimg.com/zz/comboは、CSS をロードし、クライアントに返す前にファイルを連結し、おそらく縮小するサービスです。

于 2012-04-11T07:37:08.927 に答える
0

私の推測では、http: //mail.yimg.com/zz/combo は、すべてのパラメーター (kx/ucs/uh/css/271/yunivhead-min.css、kx/ucs/uh など) を収集する小さなプログラム/スクリプトです。 /css/221/logo-min.css、kx/ucs/avatar/css/17/avatar-min.css) で、それらをバンドルして最小化します。

これは、 http://www.davidhayden.me/blog/asp.net-mvc-4-bundling-and-minification (またはその他のソース)で読むことができる MVC のバンドル機能に似ています。

于 2012-04-11T07:35:42.177 に答える
0

URL を分解すると、いくつかの CSS ファイルへのパスであるさまざまなクエリ文字列キー (値がないことに注意してください) を渡す「コンボ」と呼ばれるものへの要求であることがわかります。

これらのキーは、使用されているサーバー側の言語と、その URL の CSS が解析されて変数に変換された後、標準的な方法で抽出されてから、全体が応答に返されます。

于 2012-04-11T07:36:58.567 に答える
0

yui プロジェクトの場合、yahoo 開発には yuiloader というプロジェクトがあります。このコードは主に yui 用に設計されていますが、他のファイルにも対応するように設定できるようです。これは COMBO 以上のことを行います。また、依存関係も解決します。JSとCSSで。Yahoo は YUI の Y であるため、これはおそらく mail.yimg.com のコード ベースです。コードはhttps://github.com/yui/phploaderにあります。

于 2012-04-11T07:41:44.607 に答える