2012-07-31 4 views
12

私のウェブサイトのページ数は、数ページを除いてすべてjQueryとJSONと同じCSSを使用しています。最初のページはユーザーログインです。ユーザーが自分のユーザー名とパスワードを入力するのに時間がかかるので、ログイン中にユーザーセッション全体に必要なJavaScriptファイルとCSSファイルをすべてダウンロードします。これはどうすればできますか?ヘッダーはすべてのページで同じです。どのように最適化するのですか?JavaScriptを最適化するCSSをダウンロードする

+5

+1は巧妙な考えです。 –

+0

これを '全ユーザセッションのために'説明してください。 – Adi

+0

@ user982207あなたのページにjQueryを含めてもよろしいですか?私の答えがユーザのログアウトまでずっと – Undefined

答えて

16

私の考えは、jsとcssファイルdynaに読み込まれるまさにdocument.loadの後。これはログインページの読み込み時間に影響することはなく、ユーザーがログインするとjsファイルとcssファイルをキャッシュします。

読み込み速度が速い場合は、これをdocument.readyに簡単に変更することもできます。

このような場合はどうなりますか?

$(document).load(function() { 
    function preloadFile(filename, filetype){ 

     //For javascript files 
     if (filetype=="js"){ 
      var fileref=document.createElement('script'); 
      fileref.setAttribute("type","text/javascript"); 
      fileref.setAttribute("src", filename); 
     } 

     //For CSS files 
     else if (filetype=="css") { 
      var fileref=document.createElement("link"); 
      fileref.setAttribute("rel", "stylesheet"); 
      fileref.setAttribute("type", "text/css"); 
      fileref.setAttribute("href", filename); 
     } 

     document.getElementsByTagName("head")[0].appendChild(fileref) 
    } 

    //Examples of how to use below 
    preloadFile("myscript.js", "js"); 
    preloadFile("javascript.php", "js"); 
    preloadFile("mystyle.css", "css"); 
}); 

参照

http://www.javascriptkit.com/javatutors/loadjavascriptcss.shtml

+0

それはtry..but 2ページのCSSが異なっているなら何かを与えることができます。ログイン自体の間に私は将来のページのCSSをダウンロードできますか? – rohitnaidu19

+0

はい、このCSSはいつでもロードすることができます – Undefined

3

私はあなたのログインページ上のすべてのごCSS/JavaScriptを追加

<title>Login</title> 
<script src="foo.js"></script> <!-- This line might be better placed just before </body> --> 
<link rel="stylesheet" type="text/css" href="foo.css"> 
6
  • ログイン時にユーザーセッション全体のために必要なすべてのJavaScriptとCSSファイルをダウンロードします。
  • すべてのCSSをHEADセクションの一番上に置きます。
  • すべてのJavascriptを一番下に置きます。
  • また、JavascriptとCSSを外部ファイルとして作成することもできます(ページにインラインJavaScriptとCSS を書き込むのではなく)。

  • 縮小化あなたのJavascriptとCSS

JSとCSSのポストロードはまた、詳細についてはYUI GET UTILITY

を使用して行うことができる2

UPDATEこのYahoo : Best Practises for Optimizing your WebSite

を見て
+0

#4が#1、#2、#3と矛盾しているのが好きです – Adi

+0

実際のJSとCSSではなく外部ファイルにリンクを張ることで – Anand

+1

@Anand興味深い編集YUI Get Utility。私は余裕があるときにそれを見ています – Undefined

2

私は、例えば、非同期ローダーをお勧めします要求する。

javascriptとcssを作成して圧縮したら、ユーザーがユーザー名フィールドにフォーカスしたときなど、イベントにその読み込みを割り当てます。

Facebookは、検索ボックスがフォーカスを獲得したときに、ユーザーに関連するデータを読み込むという前向きなクエリで同様のトリックを使用します。

+0

(サムのコメントの前にこれは私が示唆しているものに似ています) – hedgehog

+0

私は間違っているかもしれませんが、彼がノードを使用していない限り、 require.jsの最適化ツールを利用することができます。 – Twigs