-
Notifications
You must be signed in to change notification settings - Fork 1
Browser
uupaa edited this page Dec 11, 2014
·
18 revisions
Spec#isFullScreenEnable():Boolean は、document.fullscreenEnabled の値を返します。
function Spec_isFullScreenEnable() { // @ret Boolean
if (_runOnBrowser) {
// Chrome WebView: document.webkitFullscreenEnabled -> false
// Chrome: document.webkitFullscreenEnabled -> true
return document[ this["prefix"](document, "fullscreenEnabled") ];
}
return false;
}Spec#isGoodByeAndroidBrowser():Boolean は、spec.WEB_VIEW が false で Android 4.0〜4.3 の Android Browser の場合に true を返します。
function Spec_isGoodByeAndroidBrowser() { // @ret Boolean
// @desc is Android 4.0-4.3 Browser
var osVer = parseFloat( this["getOSVersion"]() );
if ( !this["isWebView"]() ) {
if ( this["isOS"]("Android") ) {
if (osVer >= 4.0 && osVer < 4.4) {
var ua = this["getUserAgent"]();
if ( /Chrome/.test(ua) ) {
if ( /Version/.test(ua) ) {
return true;
}
} else if ( !/Silk|Firefox/.test(ua) ) {
return true;
}
}
}
}
return false;
}var spec = new Spec();
var goodbye = spec.isGoodByeAndroidBrowser();Spec#getHardwareConcurrency():Boolean は、WebWorkers で同時に利用可能なスレッド数を返します。
スレッド数は、navigator.hardwareConcurrency の値か、spec.CPU_CORES の値か 1 を返します。
WebWorkers が利用できない場合(WebWorkers をサポートしていない場合)は 0 を返します。
| Device | result | reason |
|---|---|---|
| MacBook Pro Retina Mid 2012 Intel Core i7, 4 Cores, HTあり |
8 | navigator.hardwareConcurrency |
| MacBook Air Late 2010 Intel Core 2 Duo, 2 Cores, HTなし |
2 | navigator.hardwareConcurrency |
| iPhone 5 iOS 8 beta 3 | 3 | navigator.hardwareConcurrency |
| iPhone 5 iOS 7 | 2 | spec.CPU_CORES |
function Spec_getHardwareConcurrency() { // @ret Integer
var nav = global["navigator"] || {};
var cores = 0;
if ("Worker" in global) {
cores = nav[ this.prefix(nav, "hardwareConcurrency") ] ||
this["getCPUCores"]() || 1;
}
return cores;
}var spec = new Spec();
var maxWorkers = spec.getHardwareConcurrency();Spec#getMaxConnections():Integer は、ブラウザの同時接続数の上限を返します。
function Spec_getMaxConnections() { // @ret Integer - max connections.
var ver = parseFloat( this["getOSVersion"]() );
var max = 16;
if ( this["isBrowser"]("Browser") ) { // Android Browser
max = ver < 4.0 ? 10 : 16;
}
return max;
}var spec = new Spec();
var maxConnections = spec.getMaxConnections();Spec#getConnectionsPerHost():Integer は、ブラウザのホスト当たりの同時接続数を返します。
function Spec_getConnectionsPerHost() { // @ret Integer - connections per host.
var ver = parseFloat( this["getOSVersion"]() );
var cph = 6;
switch ( this["getBrowserName"]() ) {
case "Browser":
cph = ver < 4.0 ? 8 : 6;
break;
case "IE":
cph = (ver < 10) ? 6
: (ver < 11) ? 8
: 13;
}
return cph;
}var spec = new Spec();
var connectionsPerHost = spec.getConnectionsPerHost();Spec#isMobileDevice():Boolean はモバイルデバイスで true になります。
function Spec_isMobileDevice() { // @ret Boolean
// @desc Mobile/Tablet Device.
var isMobile = /Android|iOS|Windows Phone/;
return isMobile.test( this["getOS"]() );
}var spec = new Spec();
var mobile = spec.isMobileDevice();