Я хочу определить использование combo
или нет в среде поддержки http2 или нет. Но я не могу найти способ проверить, поддерживает ли браузер http2 или нет в браузере.
Заранее спасибо.
API навигационной синхронизации 2 предоставляет следующую информацию:
performance.getEntriesByType('navigation')[0].nextHopProtocol
Вышеупомянутое должно возвращать "h2" на странице, полученной с использованием HTTP 2
Замечание о ограниченной совместимости nextHopProtocol:
В настоящее время API-интерфейсы API-интерфейса навигации находятся в рабочем статусе проекта, поэтому поддержка следующегоHopProtocol (который вводится с API уровня 2) будет ограничен (неуверенность в точных браузерах, поддерживающих его, так как caniuse в настоящее время не включает API уровня навигации 2-го уровня).
Самое простое решение - найти версию браузера пользователя и пользовательский агент. Пример кода javascript, чтобы найти User Agent:
function myFunction() {
var x = "User-agent header sent: " + navigator.userAgent;
document.getElementById("demo").innerHTML = x;
}
Мы можем создать карту с именем и версией браузера, и после разделения пользовательского агента мы можем знать, поддерживает ли версия браузера или нет.
С языком на стороне сервера, таким как Java, легко получить агент запроса, который может сообщить HTTP-версию, но с Javascript без Ajax, он должен добавить больше кода.
Чтобы найти несколько браузеров и какая версия браузера следует HTTP2, обратитесь к:
https://www.smashingmagazine.com/wp-content/uploads/2016/01/01-caniuse-spdy-opt.png
В соответствии с HTTP/2 часто задаваемые вопросы HTTP/2
и caniuse поддерживаются в IE11, Edge14+, Firefox 52+, Chrome 49+, Safari 10. 1+, Opera 45+, iOS Safari 9. [CN15 ], Android Browser 56 и Chrome для Android 59.
Могу ли я использовать HTTP/2 сейчас?
В браузерах HTTP/2 поддерживается самыми последними версиями Edge, Safari, Firefox и Chrome. Другие браузеры, основанные на Blink, также будут поддерживать HTTP/2 (например, Opera и Yandex Browser). Для получения дополнительной информации см. " Caniuse".
Я не мог найти другого пути.
Я думаю, что есть только способ проверить браузер и операционную систему, просмотрев следующие пункты.
https://en.wikipedia.org/wiki/HTTP/2
http://caniuse.com/#search=http2
chrome.loadTimes().connectionInfo
интерфейсе - настроить ваш сервер на возврат этой информации в случае успеха или только в chrome,chrome.loadTimes().connectionInfo
. Также связано, если не дублирование, но не может быть помечено как дублирование, потому что нет ответов: stackoverflow.com/questions/44842659/…<script src="??/a.js,/b.js"></script>
, иначе это нужно сделать в формат:<script src="/a.js" async defer></script><script src="/b.js" async defer></script>
.