3

DBから画像を取得し、それを背景として使用したいと思います。これは些細なことですが、私の現在のアプローチよりも優れた/より速い方法があります。

<head>現在、 CSSはリンクされており、内部ではないため、(で)J​​avascriptを使用して背景画像を読み込みます。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type='text/javascript'>
    $(document).ready(function(){
        $('body').css('background', 'url(/_images/galleries/lg_<?php echo getBackgroundImage(); ?>) no-repeat top center white');
    });
</script>

ページをロードすると、背景をロードするのに約0.5秒かかります。遅延は外部JSの読み込みなどに起因すると思います。また、上記のコードはコンポーネントとして含まれているため、Webサイトの各ページでそのコードをコピーして貼り付ける必要はありません。この<body>含まれるコンポーネントには含まれていません。

より速く、好ましいアプローチはありますか?

4

2 に答える 2

6

<style>ドキュメントにスクリプトを追加しているので、必要な CSS を含むブロックを追加するだけでよいでしょう。

于 2012-05-30T21:18:14.567 に答える
0

私はこれがすでに答えられているのを見ますしかし...

遅延は外部JSの読み込みに起因すると思います

はい。デフォルトではJavascriptブロック。これを回避する方法はいくつかありますが、JavaScriptの読み込みを延期することに依存しています。また、グラフィックをロードしてバックグラウンドに配置する前に、JavaScriptがロードされるのを待つ必要があります。j08691のメソッドを使用すると、この問題を回避できますが、スクリプトをさらに高速化する場合は、CSSファイル内で画像データをインライン化します(HTMLで行うこともできますが、画像のキャッシュはhtmlのキャッシュによって制限されます-通常はCSSファイルはよりキャッシュ可能になります)。もちろん、古いブラウザをサポートしたい場合は、Varies:User-agentヘッダーと非準拠ブラウザ用の異なるコードが必要になります。

于 2012-05-30T22:03:12.210 に答える