جدید در کروم 97

در اینجا چیزی است که شما باید بدانید:

سال نو مبارک! من پیت لی پیج هستم. بیایید غوطه ور شویم و ببینیم چه چیزی برای توسعه دهندگان در Chrome 97 وجود دارد.

حمل و نقل وب

اگر از Web Sockets یا WebRTC Data Channel API برای ارسال پیام بین سرور و صفحه استفاده می کنید، گزینه جدیدی برای شما وجود دارد. WebTransport یک API جدید است که پیام‌های سرویس گیرنده-سرور را با تاخیر کم، دوطرفه ارائه می‌دهد.

تأخیر کمتری نسبت به WebSockets دارد و برخلاف RTC Data Channel API که برای پیام‌رسانی همتا به همتا طراحی شده است، Web Transport API به طور خاص برای پیام‌رسانی مشتری-سرور طراحی شده است.

از ارسال داده پشتیبانی می کند، به طور قابل اعتماد با API های جریان خود، و به طور غیر قابل اعتماد با 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);

برای جزئیات کامل، مقاله آزمایش با WebTransport را در web.dev بررسی کنید.

تشخیص ویژگی نوع اسکریپت

امروزه می‌توانیم از ویژگی nomodule برای شناسایی پشتیبانی از ماژول‌های جاوا اسکریپت در مرورگر استفاده کنیم. اما چندین پیشنهاد ویژگی جدید مانند نقشه های واردات، قوانین حدس و گمان و بارگذاری اولیه بسته وجود دارد. ما به راهی نیاز داریم تا بدانیم یک مرورگر از چه چیزی پشتیبانی می کند.

HTMLScriptElement.supports() را وارد کنید. می توانید از آن برای تعیین نوع اسکریپت هایی که می توانید استفاده کنید استفاده کنید و بهترین گزینه را برای مرورگر ارسال کنید.

if (HTMLScriptElement.supports('importmap')) {
  // Use <script type="importmap" ...>
} else if (HTMLScriptElement.supports('module')) {
  // Use <script type="module" ...>
} else {
  // Use classic method...
}

نمونه های اولیه آرایه جدید

وقتی جاوا اسکریپت راحت تر می شود، آن را دوست دارم. Array و TypedArray اکنون از متدهای findLast() و findLastIndex() استاتیک پشتیبانی می کنند.

این توابع عملاً مشابه find() و findIndex() هستند، اما به جای شروع، از انتهای یک آرایه جستجو کنید.

به عنوان مثال، برای پیدا کردن آخرین عدد در آرایه ای که بزرگتر از ده است، با یک تابع تست که بررسی می کند آیا مقدار آن بزرگتر از ده است یا خیر 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

کروم 100 را در رشته UA شبیه سازی کنید

فقط چند ماه دیگر، کروم 100 را خواهیم داشت، یک شماره نسخه سه رقمی. هر کدی که شماره نسخه ها را بررسی می کند، یا رشته UA را تجزیه می کند، باید بررسی شود تا مطمئن شوید که سه رقم را کنترل می کند.

یک پرچم به نام #force-major-version-to-100 وجود دارد که شماره نسخه فعلی را به 100 تغییر می‌دهد، بنابراین می‌توانید مطمئن شوید که همه چیز طبق انتظار کار می‌کند.

صفحه پرچم‌های کروم که گزینه جدید #force-major-version-to-100 را برجسته می‌کند

و بیشتر!

البته چیزهای بیشتری وجود دارد.

خطوط جدید در ورودی های فرم اکنون به همان روش Gecko و WebKit عادی شده اند و قابلیت همکاری بین مرورگرها را بهبود می بخشد.

ما در حال استانداردسازی نام های راهنمایی مشتری با پیشوند sec-ch هستیم. به عنوان مثال، dpr تبدیل به sec-ch-dpr می شود. ما به پشتیبانی از نسخه‌های موجود این نکات ادامه خواهیم داد، اما شما باید برای منسوخ شدن و حذف نهایی آنها برنامه‌ریزی کنید.

عناصر <details> بسته اکنون قابل جستجو هستند و می توان به آنها پیوند داد. هنگامی که در صفحه، ScrollToTextFragment و ناوبری قطعه عنصر استفاده می شود، این عناصر پنهان به طور خودکار گسترش می یابند.

در ادامه مطلب

این تنها برخی از نکات کلیدی را پوشش می دهد. برای تغییرات بیشتر در کروم 97 پیوندهای زیر را بررسی کنید.

مشترک شوید

برای به‌روز ماندن، در کانال YouTube Developers Chrome مشترک شوید و هر زمان که ویدیوی جدیدی را راه‌اندازی کنیم، یک اعلان ایمیلی دریافت خواهید کرد.

من Pete LePage هستم، و به محض انتشار کروم 98، من اینجا خواهم بود تا به شما بگویم چه چیزی در کروم جدید است!