必知事項は次のとおりです。
WebTransport
は、クライアントとサーバー間でリアルタイム メッセージを送信するための新しいオプションです。- 機能検出を使用すると、ブラウザでサポートされているスクリプトの種類を確認できます。
- 配列の末尾からの検索が少し簡単になります。
- 他にも多数の機能があります。
ハッピー ニューイヤーPete LePage と申します。Chrome 97 のデベロッパー向けの新機能について詳しく見てみましょう。
Web Transport
Web Sockets または WebRTC Data Channel API を使用してサーバー間とページ間でメッセージを送信している場合は、新しいオプションがあります。WebTransport
は、低レイテンシの双方向クライアント / サーバー メッセージングを提供する新しい API です。
WebSocket よりもレイテンシが低く、ピアツーピア メッセージング用に設計された RTC Data Channel API とは異なり、Web Transport API はクライアント サーバー メッセージング用に特別に設計されています。
データの送信をサポートしています。streams API では信頼性の高い送信を、datagram API では信頼性の低い送信をサポートしています。これはウェブワーカーでサポートされています。また、Streams 準拠のインターフェースを公開するため、バックプレッシャーに関する最適化をサポートしています。
使用するには、HTTP/3 をサポートするサーバーが必要です。これは、通常、WebRTC サーバーの設定とメンテナンスよりも簡単です。新しい WebTransport
インスタンスを開き、接続を待ってから、データの送信を開始できます。
const url = 'https://example.com:4999/foo/bar';
const transport = new WebTransport(url);
await transport.ready;
const writer = transport.datagrams.writable.getWriter();
const data1 = new Uint8Array([65, 66, 67]);
writer.write(data1);
詳しくは、web.dev の WebTransport の試験運用に関する記事をご覧ください。
スクリプト タイプの特徴検出
現在、nomodule
属性を使用して、ブラウザでの JavaScript モジュールのサポートを検出できます。ただし、インポート マップ、推測ルール、バンドルのプリロードなど、新機能の提案がいくつかパイプラインにあります。ブラウザがサポートしている内容を確認する方法が必要です。
「HTMLScriptElement.supports()
」と入力します。これを使用して、使用できるスクリプトの種類を判断し、最適なオプションをブラウザに送信できます。
if (HTMLScriptElement.supports('importmap')) {
// Use <script type="importmap" ...>
} else if (HTMLScriptElement.supports('module')) {
// Use <script type="module" ...>
} else {
// Use classic method...
}
新しい配列プロトタイプ
JavaScript が簡単になるのは嬉しいですね。Array
と TypedArray
が findLast()
と findLastIndex()
の静的メソッドをサポートするようになりました。
これらの関数は、find()
や findIndex()
と実質的に同じですが、先頭ではなく配列の末尾から検索します。
たとえば、配列内の 10 より大きい最後の数値を見つけるには、値が 10 より大きいかどうかを確認するテスト関数を指定して findLast()
を呼び出します。
const array1 = [5, 12, 8, 130, 44, 3, 6];
function greaterThanTen(val) {
return val > 10;
}
const last = array1.findLast(greaterThanTen);
// 44
const lIdx = array1.findLastIndex(greaterThanTen);
// 4
UA 文字列で Chrome 100 をエミュレートする
数か月後には、バージョン番号が 3 桁の Chrome 100 に到達する予定です。バージョン番号を確認するコードや UA 文字列を解析するコードは、3 桁を処理していることを確認する必要があります。
現在のバージョン番号を 100 に変更する #force-major-version-to-100
というフラグがあるため、すべてが想定どおりに動作することを確認できます。
その他
もちろん、他にもたくさんあります。
フォーム入力の改行が Gecko や WebKit と同様に正規化されるようになり、ブラウザ間の相互運用性が向上しました。
クライアント ヒント名の先頭に sec-ch
を付加して、クライアント ヒント名を標準化します。たとえば、dpr
は sec-ch-dpr
になります。 これらのヒントの既存のバージョンは引き続きサポートされますが、最終的には非推奨になり、削除される予定です。
閉じられた <details>
要素を検索してリンクできるようになりました。これらの非表示要素は、ページ内検索、ScrollToTextFragment
、要素フラグメント ナビゲーションを使用すると自動的に展開されます。
関連情報
以下に、主なハイライトをいくつかご紹介します。Chrome 97 のその他の変更については、下記のリンクをご覧ください。
- Chrome DevTools の新機能(97)
- Chrome 97 の非推奨と削除
- Chrome 97 の ChromeStatus.com の更新
- Chrome 97 の JavaScript の新機能
- Chromium ソース リポジトリの変更リスト
- Chrome のリリース カレンダー
登録
最新情報を入手するには、Chrome Developers の YouTube チャンネルにチャンネル登録してください。新しい動画が公開されると、メール通知が届きます。
Pete LePage と申します。Chrome 98 がリリースされ次第、Chrome の新機能についてお知らせします。