2012-03-13 3 views
0

私のウェブサイトを最初に読み込むと、ユーザーが使用しているデバイスを識別する小さなスクリプトが実行されます。これを試すjavascriptの注文

私は古いデバイスなどの負荷に追加...しかし今度は、最初の負荷の速度は(PCのを含む)すべてのデバイス上で苦しんできた気づきました。

Iは、例えば、私のスクリプトの一番上にこのコード行を書くことだった場合は、次のiPhoneはその後、別のJavaScriptファイルに行けば

各デバイスは、まだ、その読みのJavaScriptファイルに移動して、すべてのものを読んで、それはすでにないようので、時間を無駄にしますか?

現在のデバイス認識スクリプトを分割すると、基本的にパフォーマンスが向上しますか?

私は、そのコードは上から下に走る理解が、それは一つの大きなファイルであるため、上部にいくつかのデバイスは、まだ彼らは全体のスクリプトを介して実行されているように、そしていつもより長く、落ち着くまでに数秒かかります。

+0

あなたのデバイススニッフィングスクリプトを投稿してください。 –

+0

は、コードの抜粋で簡単に答えることができます – GGJ

+0

なぜ 'User-Agent'ヘッダーを読んでいないのですが、その時点で必要な正しいスクリプトを含むだけですか? (これが、ほとんどの「モバイル検出」スクリプトが行うことです。 –

答えて

0

私は動的にそのような余分なJSをロードします:

var isIphone = (function(){ /*determin if is iPhone, return true or false*/})(); 

if (isIphone){ 
    var iPhone_js = document.createElement('script') 
    iPhone_js.setAttribute("type","text/javascript") 
    iPhone_js.setAttribute("src","/root/to/iphone/js") 
} 
1

スクリプトをロードした場合、それが実行される前、それは常に解析されます。したがって、スクリプトに条件を入れると、実際にコードが実行されないように保たれます。毎回ロードされ、解析されます。

あなたがロードされ、解析されてから、不要なスクリプトを維持したい場合は、条件付きで別のスクリプトをロードされたスクリプトが必要になります。

0

あなたは、クライアントがユーザーエージェント文字列を見て、使用しているどのデバイス確認することができます。
http://en.wikipedia.org/wiki/User_agent

次に、あなただけの別のHTMLを返すことができますが、各デバイスのための(つまりは異なるスクリプトが含まれます)。

0

あなたのウェブサイトでは、サーバー側の言語を使用している場合、私は、サーバー側で決定し、それが最良だと思う、ターゲットデバイスが何であるか(そしてその後の要求のためにそれを覚えている)、それに応じJavaScriptライブラリやファイルを送信クライアントに送信します。