必知事項は次のとおりです。
WebTransport
は、クライアントとサーバー間でリアルタイム メッセージを送信するための新しいオプションです。- 機能検出を使用すると、ブラウザでサポートされているスクリプトの種類を確認できます。
- 配列の末尾からの検索が少し簡単になります。
- 他にも多くの機能を利用できます。
ハッピー ニューイヤーPete LePage と申します。Chrome 97 のデベロッパー向けの新機能について詳しく見てみましょう。
ウェブ トランスポート
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 チャンネルにチャンネル登録してください。新しい動画が公開されるたびに、メール通知が届きます。
Chrome 98 がリリースされたらすぐにお知らせします。 Pete LePage です。