यहां आपके जानने योग्य तथ्य दिए गए हैं:
- एक नया एचटीटीपी 103 स्टेटस कोड है. इससे ब्राउज़र को यह तय करने में मदद मिलती है कि पेज लोड होने से पहले कौनसा कॉन्टेंट प्रीलोड करना है.
- Local Font Access API की मदद से वेब ऐप्लिकेशन, उपयोगकर्ता के कंप्यूटर पर इंस्टॉल किए गए फ़ॉन्ट की गिनती कर सकते हैं और उनका इस्तेमाल कर सकते हैं.
AbortSignal.timeout()
, एसिंक्रोनस एपीआई पर टाइम आउट लागू करने का आसान तरीका है.- इसके अलावा, और भी बहुत कुछ है.
मेरा नाम पीट लेपेज है. आइए, जानें कि Chrome 103 में डेवलपर के लिए क्या नया है.
एचटीटीपी 103 स्टेटस कोड 103 - शुरुआती संकेत
पेज की परफ़ॉर्मेंस को बेहतर बनाने का एक तरीका यह है कि आप रिसॉर्स हिंट का इस्तेमाल करें. ये ब्राउज़र को "सलाह" देते हैं कि उसे बाद में किस तरह के कॉन्टेंट की ज़रूरत पड़ सकती है. उदाहरण के लिए, फ़ाइलों को पहले से लोड करना या किसी दूसरे सर्वर से कनेक्ट करना.
<link as="font" crossorigin="anonymous"
href="..." rel="preload">
<link as="font" crossorigin="anonymous"
href="..." rel="preload">
<link href="cdn.example.com"
rel="preconnect">
हालांकि, जब तक सर्वर पेज का कम से कम हिस्सा नहीं भेजता, तब तक ब्राउज़र उन हिंट पर काम नहीं कर सकता.
मान लें कि ब्राउज़र किसी पेज का अनुरोध करता है, लेकिन सर्वर को उसे जनरेट करने में कुछ सौ मिलीसेकंड लगते हैं. जब तक ब्राउज़र को पेज मिलने लगता है, तब तक वह वहीं रहता है और इंतज़ार करता है. हालांकि, अगर सर्वर को पता है कि पेज को हमेशा सबरिसॉर्स के एक खास सेट की ज़रूरत होगी, जैसे कि सीएसएस फ़ाइल, कुछ JavaScript, और कुछ इमेज, तो वह तुरंत नए एचटीटीपी 103 अर्ली हिंट स्टेटस कोड के साथ जवाब दे सकता है और ब्राउज़र को उन सबरिसॉर्स को पहले से लोड करने के लिए कह सकता है.
इसके बाद, सर्वर पेज जनरेट करने के बाद, उसे सामान्य एचटीटीपी 200 रिस्पॉन्स के साथ भेज सकता है. पेज खुलने से पहले ही, ब्राउज़र ज़रूरी रिसॉर्स लोड करना शुरू कर देता है.
यह एक नया एचटीटीपी स्टेटस कोड है. इसका इस्तेमाल करने के लिए, आपको अपने सर्वर को अपडेट करना होगा.
एचटीटीपी 103 को इस्तेमाल करने से जुड़े शुरुआती सुझाव:
- रिलीज़ से पहले मिलने वाले हिंट के बारे में जानकारी
- Apache 2 Early hints का कॉन्फ़िगरेशन
- Cloudflare पर शुरुआती हिंट का इस्तेमाल करना
- Fastly Beyond Server Push: 103 Early Hints Status Code
Local Font Access API
वेब पर फ़ॉन्ट इस्तेमाल करना हमेशा से एक चुनौती रहा है. खास तौर पर, उन ऐप्लिकेशन के लिए जिनमें उपयोगकर्ता अपने ग्राफ़िक और डिज़ाइन बना सकते हैं. अब तक, वेब ऐप्लिकेशन में सिर्फ़ वेब फ़ॉन्ट का इस्तेमाल किया जा सकता था. उपयोगकर्ता के कंप्यूटर पर इंस्टॉल किए गए फ़ॉन्ट की सूची पाने का कोई तरीका नहीं था. साथ ही, फ़ॉन्ट टेबल का पूरा डेटा ऐक्सेस करने का कोई तरीका नहीं था. यह डेटा तब ज़रूरी होता है, जब आपको अपना कस्टम टेक्स्ट स्टैक लागू करना हो.
नए Local Font Access API का इस्तेमाल करके, वेब ऐप्लिकेशन उपयोगकर्ता के डिवाइस पर स्थानीय फ़ॉन्ट की गिनती कर सकते हैं. साथ ही, यह फ़ॉन्ट टेबल के डेटा का ऐक्सेस भी देते हैं.
डिवाइस पर इंस्टॉल किए गए फ़ॉन्ट की सूची पाने के लिए, आपको पहले अनुमति का अनुरोध करना होगा.
// Ask for permission to use the API
try {
const status = await navigator.permissions.request({
name: 'local-fonts',
});
if (status.state !== 'granted') {
throw new Error('No Permission.');
}
} catch (err) {
if (err.name !== 'TypeError') {
throw err;
}
}
इसके बाद, window.queryLocalFonts()
पर कॉल करें. यह उपयोगकर्ता के डिवाइस पर इंस्टॉल किए गए सभी फ़ॉन्ट का ऐरे दिखाता है.
const opts = {};
const pickedFonts = await self.queryLocalFonts();
for (const fontData of pickedFonts) {
console.log(fontData.postscriptName);
console.log(fontData.fullName);
console.log(fontData.family);
console.log(fontData.style);
}
अगर आपको सिर्फ़ फ़ॉन्ट के सबसेट में दिलचस्पी है, तो postscriptNames
पैरामीटर जोड़कर उन्हें फ़िल्टर किया जा सकता है.
const opts = {
postscriptNames: [
'Verdana',
'Verdana-Bold',
'Verdana-Italic',
],
};
const pickedFonts = await self.queryLocalFonts(opts);
ज़्यादा जानकारी के लिए, web.dev पर टॉम का लेख स्थानीय फ़ॉन्ट के साथ बेहतर टाइपोग्राफ़ी का इस्तेमाल करना पढ़ें.
HowToSignal.timeout() की मदद से, आसान टाइमआउट
JavaScript में, AbortController
और AbortSignal
का इस्तेमाल, असाइनोक्रोनस कॉल को रद्द करने के लिए किया जाता है.
उदाहरण के लिए, fetch()
अनुरोध करते समय, AbortSignal
बनाया जा सकता है और उसे fetch()
को पास किया जा सकता है. अगर आपको fetch()
को वापस आने से पहले रद्द करना है, तो AbortSignal
के इंस्टेंस पर abort()
को कॉल करें. अब तक, अगर आपको किसी तय समय के बाद इसे बंद करना था, तो आपको इसे setTimeout()
में रैप करना होगा.
const controller = new AbortController();
const signal = controller.signal;
const resp = fetch(url, { signal });
setTimeout(() => {
// abort the fetch after 6 seconds
controller.abort();
}, 6000);
शुक्र है कि AbortSignal
पर timeout()
के नए स्टैटिक तरीके की मदद से, यह काम अब आसान हो गया है. यह एक AbortSignal
ऑब्जेक्ट दिखाता है, जो दिए गए मिलीसेकंड के बाद अपने-आप रद्द हो जाता है. पहले कोड की कुछ लाइनों की ज़रूरत होती थी, लेकिन अब सिर्फ़ एक लाइन की ज़रूरत है.
const signal = AbortSignal.timeout(6000);
const resp = fetch(url, { signal });
AbortSignal.timeout()
सुविधा, Chrome 103 में काम करती है. यह पहले से ही Firefox और Safari में काम करती है.
और भी कई सुविधाएं!
बेशक वहां और भी बहुत कुछ है.
avif
इमेज फ़ाइल फ़ॉर्मैट को अब वेब शेयर की मदद से शेयर किया जा सकता है- अब Chromium, यूआरएल में बदलाव होने के तुरंत बाद
popstate
को ट्रिगर करके, Firefox से मेल खाता है. इवेंट का क्रम अब यह है: दोनों प्लैटफ़ॉर्म परpopstate
के बादhashchange
. Element.isVisible()
से पता चलता है कि कोई एलिमेंट दिख रहा है या नहीं.
इसके बारे में और पढ़ें
इसमें सिर्फ़ कुछ खास हाइलाइट शामिल हैं. Chrome 103 में हुए अन्य बदलावों के बारे में जानने के लिए, यहां दिए गए लिंक देखें.
- Chrome DevTools (103) में नया क्या है
- Chrome 103 में बंद किए गए और हटाए गए फ़ंक्शन
- Chrome 103 के लिए ChromeStatus.com के अपडेट
- Chromium सोर्स रिपॉज़िटरी में हुए बदलावों की सूची
- Chrome के रिलीज़ कैलेंडर की जानकारी
सदस्यता लें
अप-टू-डेट रहने के लिए, Chrome डेवलपर के YouTube चैनल की सदस्यता लें. ऐसा करने पर, जब भी हम कोई नया वीडियो लॉन्च करेंगे, आपको ईमेल से सूचना मिलेगी.
मेरा नाम पीट लेपेज है. Chrome 104 रिलीज़ होने के बाद, मैं आपको बताऊंगा कि Chrome में नया क्या है!