Как определить поддержку браузера http2 или нет в среде браузера по javascript?

1

Я хочу определить использование combo или нет в среде поддержки http2 или нет. Но я не могу найти способ проверить, поддерживает ли браузер http2 или нет в браузере.

Заранее спасибо.

  • 1
    Извините за комментарий невежественного, но зачем вам это знать? На мой взгляд, эта проверка должна быть сделана между сервером и браузером во время переговоров. На переднем конце, вам не все равно. И единственный способ узнать об этом во chrome.loadTimes().connectionInfo интерфейсе - настроить ваш сервер на возврат этой информации в случае успеха или только в chrome, chrome.loadTimes().connectionInfo . Также связано, если не дублирование, но не может быть помечено как дублирование, потому что нет ответов: stackoverflow.com/questions/44842659/…
  • 0
    @Kaiido Если браузер не поддерживает http2, я надеюсь загрузить ресурсы js в формате: <script src="??/a.js,/b.js"></script> , иначе это нужно сделать в формат: <script src="/a.js" async defer></script><script src="/b.js" async defer></script> .
Показать ещё 3 комментария
Теги:
http2
browser

4 ответа

2

API навигационной синхронизации 2 предоставляет следующую информацию:

performance.getEntriesByType('navigation')[0].nextHopProtocol

Вышеупомянутое должно возвращать "h2" на странице, полученной с использованием HTTP 2

Замечание о ограниченной совместимости nextHopProtocol:

В настоящее время API-интерфейсы API-интерфейса навигации находятся в рабочем статусе проекта, поэтому поддержка следующегоHopProtocol (который вводится с API уровня 2) будет ограничен (неуверенность в точных браузерах, поддерживающих его, так как caniuse в настоящее время не включает API уровня навигации 2-го уровня).

0

Самое простое решение - найти версию браузера пользователя и пользовательский агент. Пример кода 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

0

В соответствии с 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".

-1

Я не мог найти другого пути.
Я думаю, что есть только способ проверить браузер и операционную систему, просмотрев следующие пункты.
https://en.wikipedia.org/wiki/HTTP/2
http://caniuse.com/#search=http2

Ещё вопросы

Сообщество Overcoder
Наверх
Меню