2010-09-28 6 views

risposta

5

L'unica cosa con qualsiasi conoscenza del sistema su cui è in esecuzione è il sistema operativo. Il sistema operativo crea un livello di astrazione in cui viene eseguita ogni applicazione. Le applicazioni non possono sapere quale processore hai o quanta RAM hai senza chiedere al sistema operativo. Nessun browser moderno chiederà.

La Java Virtual Machine fa chiedere al sistema operativo, in modo che si possa fare con un applet Java.

Altrimenti avresti bisogno di un plugin per il browser.

7

No, non è possibile. Non c'è accesso alle informazioni sull'hardware tramite JavaScript nei browser web. Potresti avere un po 'di fortuna con i plug-in del browser, ActiveX, ecc.

2

Queste informazioni non sono disponibili, almeno non in modo coerente o affidabile utilizzando solo JavaScript ... flash può essere un'opzione, ma ci sono molte restrizioni di sicurezza intorno a questo, quindi non sono sicuro di ciò che è disponibile ad esso.

+0

nessuna di queste informazioni è disponibile per Flash. – Allan

+0

@Allan - Flash è più abile a dire eseguire il proprio benchmark CPU, ecc –

+0

@ Nick Craver - mi dispiace non sono sicuro di quello che vuoi dire? – Allan

2

No, questo non è possibile. A meno che non chieda all'utente, a livello di programmazione.

+4

Chiedere all'utente di inserire i dati non è realmente "rilevatore" :) –

+0

Sì, è per questo che ho detto che rilevare non è possibile. :) – Ruel

1

In IE è possibile rilevare il cpuClass. Non ti dice molto, ma forse c'è qualche utilità per te.

http://msdn.microsoft.com/en-us/library/ms533697%28v=VS.85%29.aspx

+0

Su un sistema AMD a 64 bit questo restituisce ancora 'x86' * così * questo probabilmente ha lo scopo di distinguere solo tra le istruzioni di elaborazione ARM e x86 probabilmente implementate con il tentativo di Microsoft di entrare nel mercato mobile e raccogliere le statistiche ARM contro x86. Questo non determinerà nemmeno 32 contro 64 bit. Comunque, interessante. – John

0

Se il vostro obiettivo finale sta facendo diverse azioni sulla base del se o non faranno rendono veloce/correttamente sul comp utenti, si potrebbe cronometrare alcuni processi chiave di volta ed eseguire processi diversi in base al risultato.

3

Non è possibile rilevare il tipo e la velocità della CPU. Ma puoi trovare il numero di core e le informazioni del produttore della CPU. È possibile calcolare le prestazioni del sistema in base al numero di core della CPU. Il numero di core è direttamente proporzionale alla performance. Una macchina ad anima più alta offre buone prestazioni.

navigator.hardwareConcurrency mostra il numero di core della CPU, ma funziona solo su Chrome.

navigator.hardwareConcurrency 

navigator.userAgent fornisce le informazioni complete del sistema operativo e del browser.

navigator.userAgent 
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36" 

navigator.platform mostra Informazioni sull'impianto

navigator.platform 
"MacIntel" 

Spero che questo aiuti.

+0

Mentre hardwareConcurrency è un concetto HTML5 elegante ancora in fase di sviluppo, vale la pena notare che non è possibile fidarsi di userAgent per fornire tutte le informazioni richieste. I programmi utente sono stringhe arbitrarie senza un formato stabilito. Sebbene molti browser moderni includano il sistema operativo, non sono obbligati a farlo. Puoi anche spoofare facilmente un agente utente con i plugin del browser. Alcuni dispositivi potrebbero riportare "Intel" o "x64" nell'agente utente, mentre altri potrebbero non riferire affatto l'architettura. – stevendesu

+0

Sì, ma possiamo identificare la piattaforma utilizzando useragent e piattaforma. Sul sistema Windows/Linux navigator.platform mostra x64 o x32 e su Mac mostra MacIntel. Sì, hardwareConcurrency ancora in fase di sviluppo e possiamo utilizzarlo solo su Chrome – skipper21