2010-09-28 16 views

Trả lời

5

Điều duy nhất có bất kỳ kiến ​​thức nào về hệ thống mà hệ điều hành đang chạy là Hệ điều hành. Hệ điều hành tạo ra một lớp trừu tượng trong đó mọi ứng dụng chạy. Các ứng dụng không thể biết bạn có bộ vi xử lý nào hoặc bạn có bao nhiêu RAM mà không hỏi hệ điều hành. Không có trình duyệt hiện đại nào sẽ hỏi.

Máy ảo Java yêu cầu hệ điều hành, vì vậy bạn có thể thực hiện với một ứng dụng Java.

Nếu không, bạn cần plugin trình duyệt.

7

Không, điều đó là không thể. Không có quyền truy cập vào thông tin phần cứng thông qua JavaScript trong trình duyệt web. Bạn có thể có một số may mắn bằng cách sử dụng plugin trình duyệt, ActiveX, v.v.

2

Thông tin này không có sẵn, ít nhất là không nhất quán hoặc đáng tin cậy bằng cách sử dụng chỉ JavaScript ... flash có thể là một tùy chọn, nhưng có nhiều hạn chế bảo mật xung quanh quá, vì vậy tôi không chắc chắn những gì có sẵn cho nó.

+0

không có thông tin nào trong số đó có sẵn cho Flash. – Allan

+0

@Allan - Flash chuyên nghiệp hơn khi nói chạy điểm chuẩn CPU của riêng bạn, v.v. –

+0

@Nick Craver - xin lỗi tôi không chắc chắn ý của bạn là gì? – Allan

2

Không, điều đó là không thể. Trừ khi bạn định hỏi người dùng, lập trình.

+4

Yêu cầu người dùng nhập dữ liệu không thực sự "phát hiện" :) –

+0

Đúng, đó là lý do tại sao tôi cho biết không thể phát hiện được. :) – Ruel

1

Trong IE, bạn có thể phát hiện cpuClass. Nó không cho bạn biết nhiều, nhưng có thể có bất kỳ việc sử dụng nào cho bạn.

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

+0

Trên hệ thống AMD 64 bit, nó vẫn trả về 'x86' * vì vậy * điều này có thể chỉ nhằm phân biệt giữa hướng dẫn xử lý ARM và x86 có khả năng thực hiện với nỗ lực của Microsoft để chuyển sang thị trường di động và thu thập số liệu thống kê ARM so với x86. Điều này thậm chí sẽ không xác định 32 so với 64 bit. Tuy nhiên, thú vị. – John

0

Nếu mục tiêu cuối cùng của bạn là làm những hành động khác nhau dựa trên hay không họ sẽ làm cho nhanh/một cách chính xác trên comp người dùng, bạn có thể thời gian quá trình yếu tố quyết định nhất định và chạy các quá trình khác nhau dựa trên kết quả.

3

Không thể phát hiện loại CPU và tốc độ. Nhưng bạn có thể tìm thấy số lõi và thông tin nhà sản xuất CPU. Bạn có thể tìm ra hiệu năng hệ thống dựa trên số lõi CPU. Số lõi là tỷ lệ thuận với hiệu suất. Máy lõi cao hơn cho hiệu suất tốt.

navigator.hardwareConcurrency hiển thị số lõi CPU, nhưng nó chỉ hoạt động trên chrome.

navigator.hardwareConcurrency 

navigator.userCung cấp cho hệ điều hành và thông tin trình duyệt hoàn chỉnh.

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 hiển thị thông tin hệ thống

navigator.platform 
"MacIntel" 

Hope this helps.

+0

Trong khi phần cứngConcurrency là một khái niệm HTML5 tiện lợi vẫn đang được phát triển, đáng chú ý là userAgent không thể tin cậy để cung cấp tất cả thông tin mà họ yêu cầu. Tác nhân người dùng chỉ là các chuỗi tùy ý mà không có định dạng được thiết lập. Trong khi nhiều trình duyệt hiện đại sẽ bao gồm HĐH, họ không có nghĩa vụ phải làm như vậy. Bạn cũng có thể giả mạo một tác nhân người dùng dễ dàng với các plugin trình duyệt. Một số thiết bị có thể báo cáo "Intel" hoặc "x64" trong tác nhân người dùng, trong khi các thiết bị khác có thể không báo cáo kiến ​​trúc nào cả. – stevendesu

+0

Vâng, nhưng chúng tôi có thể xác định nền tảng bằng cách sử dụng nền tảng người dùng và nền tảng. Trên hệ điều hành Windows/Linux navigator.platform hiển thị x64 hoặc x32 và trên Mac, nó hiển thị MacIntel. Có, phần cứngConcurrency vẫn đang được phát triển và chúng tôi chỉ có thể sử dụng nó trên Chrome – skipper21

Các vấn đề liên quan