2011-07-01 21 views
2

navigator.cpuClassを使用してJavascriptから訪問者のCPUタイプを取得し、正しいダウンロードを提供しようとしています。私のテストでは、 "Win64"が必要なときに "Win32"を返すnavigator.cpuClassの例を実行しました。私のPCのリターンにシステム情報ユーティリティ:navigator.cpuClassが正しくないのはなぜですか?

Intel64ファミリ6モデル15ステッピング11 GenuineIntel〜さらにで記述されている2400メガヘルツ(Q6600): http://ark.intel.com/Product.aspx?id=29765

Javascriptが64ビットを見ていない、なぜ誰も教えてもらえますCPU?私はそのCPUを確実に検出する必要があります...

+1

あなたの持っているものを提供し、ユーザーが自分が望むものを決定できるようにします。 – RobG

答えて

5

多分あなたは32ビットブラウザを使用しています。サンプルをhereから試してみると、64ビットOS(Chromeの32ビットビルド)を実行していても同じ結果(Win32)が表示されます。

ただし、私の場合、ChromeのappVersion文字列は、Wow64エミュレーションレイヤーで動作することを示しています。おそらく、あなたは他のブラウザにとってもそうしたヒントを見つけることができます。

通常、CPUクラスは信頼できるを検出できません。これは、ブラウザが赤色のピルと青色のピルを取ったかどうかを決して知らないためです。

実用的な解決策は、ブラウザが返すものに基づいてデフォルトの選択を提供し、ユーザーが64ビットバージョンに切り替えることができるようにすることです。ほとんどの32ビットソフトウェアは64ビット環境で完璧に動作するので(このケースでは証明されている)、ほとんどのユーザーは「間違った」ダウンロードを選択したかどうかを気付かないでしょう。

+0

また、navigator.appVersionからそのWOW64を取得します。私はそれを試して見なければならないでしょう。それはより良いヒントかもしれないように見えます。 – Taptronic

+1

@最適な解決法:私はいくつかの注釈を追加しました。 –

+0

アドバイスをいただきありがとうございます! – Taptronic

関連する問題