Chrome 77 में नया

Chrome 77 अब रोल आउट हो रहा है!

मेरा नाम पीट लीपेज है. चलिए, देखते हैं कि Chrome 77 में डेवलपर के लिए नया क्या है!

सबसे बड़ा कॉन्टेंटफ़ुल पेंट

असल दुनिया में अपनी साइट की परफ़ॉर्मेंस को समझना और उसे मेज़र करना मुश्किल हो सकता है. load या DOMContentLoaded जैसी मेट्रिक से यह पता नहीं चलता कि उपयोगकर्ता स्क्रीन पर क्या देख रहा है. फ़र्स्ट पेंट और पहला कॉन्टेंटफ़ुल पेंट, अनुभव की शुरुआत को ही कैप्चर करते हैं. पहला सार्थक पेंट बेहतर है, लेकिन यह जटिल और कभी-कभी गलत होता है.

सबसे बड़ा कॉन्टेंटफ़ुल पेंट एपीआई, Chrome 77 में उपलब्ध है. यह व्यूपोर्ट में दिखने वाले सबसे बड़े कॉन्टेंट एलिमेंट के रेंडर होने में लगने वाले समय की रिपोर्ट करता है. साथ ही, इससे यह मेज़र किया जा सकता है कि पेज का मुख्य कॉन्टेंट कब लोड हुआ.

सबसे बड़े कॉन्टेंटफ़ुल पेंट को मापने के लिए, आपको परफ़ॉर्मेंस ऑब्ज़र्वर का इस्तेमाल करना होगा और largest-contentful-paint इवेंट खोजना होगा.

let lcp;
const po = new PerformanceObserver((eList) => {
  const e = eList.getEntries();
  const last = e[e.length - 1];
  lcp = last.renderTime || last.loadTime;
});

const poOpts = {
  type: 'largest-contentful-paint',
  buffered: true
}
po.observe(poOpts);

पेज अक्सर अलग-अलग चरणों में लोड होता है. इसलिए, हो सकता है कि पेज का सबसे बड़ा एलिमेंट बदल जाए. इसलिए, आंकड़ों की जानकारी देने वाली सेवा को सिर्फ़ आखिरी largest-contentful-paint इवेंट की रिपोर्ट करें.

addEventListener('visibilitychange', function fn() {
  const visState = document.visibilityState;
  if (lcp && visState === 'hidden') {
    sendToAnalytics({'lcp': lcp});
    removeEventListener('visibilitychange', fn, true);
  }
}, true);

फ़िल ने web.dev पर सबसे बड़े कॉन्टेंटफ़ुल पेंट के बारे में एक बेहतरीन पोस्ट की है.

नए फ़ॉर्म की सुविधाएं

कई डेवलपर कस्टम फ़ॉर्म कंट्रोल बनाते हैं, ताकि मौजूदा एलिमेंट के लुक और स्टाइल को पसंद के मुताबिक बनाया जा सके. इसके अलावा, ऐसे नए कंट्रोल बनाए जा सकते हैं जो ब्राउज़र में पहले से मौजूद नहीं हैं. आम तौर पर, इसमें JavaScript और छिपे हुए <input> एलिमेंट का इस्तेमाल करना शामिल होता है. हालांकि, यह पूरी तरह से सटीक समाधान नहीं है.

वेब की दो नई सुविधाएं, Chrome 77 में जोड़ी गई हैं. इनसे कस्टम फ़ॉर्म कंट्रोल बनाने और मौजूदा सीमाओं को हटाने में मदद मिलती है.

formdata इवेंट

formdata इवेंट एक लो-लेवल एपीआई है, जो किसी भी JavaScript कोड को फ़ॉर्म सबमिशन में हिस्सा लेने देता है. इसका इस्तेमाल करने के लिए, उस फ़ॉर्म में formdata इवेंट लिसनर जोड़ें जिससे आपको इंटरैक्ट करना है.

const form = document.querySelector('form');
form.addEventListener('formdata', ({formData}) => {
  formData.append('my-input', myInputValue);
});

जब लोग 'सबमिट करें' बटन पर क्लिक करते हैं, तब फ़ॉर्म formdata इवेंट फ़ायर करता है. इसमें FormData ऑब्जेक्ट शामिल होता है, जिसमें सबमिट किया गया पूरा डेटा होता है. इसके बाद, formdata इवेंट हैंडलर में सबमिट किए जाने से पहले, formdata को अपडेट किया जा सकता है या उसमें बदलाव किया जा सकता है.

फ़ॉर्म से जुड़े कस्टम एलिमेंट

फ़ॉर्म से जुड़े कस्टम एलिमेंट, कस्टम एलिमेंट और नेटिव कंट्रोल के बीच के अंतर को कम करने में मदद करते हैं. स्टैटिक formAssociated प्रॉपर्टी जोड़ने से, ब्राउज़र कस्टम एलिमेंट को दूसरे सभी फ़ॉर्म एलिमेंट की तरह ही इस्तेमाल करता है. नेटिव कंट्रोल के साथ एक जैसा अनुभव देने के लिए, आपको name, value, और validity जैसे इनपुट एलिमेंट पर मिलने वाली सामान्य प्रॉपर्टी भी जोड़नी चाहिए.

class MyCounter extends HTMLElement {
  static formAssociated = true;

  constructor() {
    super();
    this._internals = this.attachInternals();
    this._value = 0;
  }
  ...
}

पूरी जानकारी के लिए web.dev पर, बेहतर फ़ॉर्म कंट्रोल देखें!

नेटिव लेज़ी लोडिंग

मुझे ठीक से नहीं पता कि मैं अपने पिछले वीडियो में नेटिव लेज़ी लोडिंग से कैसे चूक गया! यह बहुत ही अद्भुत है, इसलिए मैं इसे अब शामिल कर रही हूं. लेज़ी लोडिंग एक ऐसी तकनीक है जिसकी मदद से, ऑफ़-स्क्रीन <img> या <iframe> जैसे गै़र-ज़रूरी संसाधनों को तब तक लोड होने से रोका जा सकता है, जब तक कि उनकी ज़रूरत न हो. इससे आपके पेज की परफ़ॉर्मेंस बेहतर होती है.

Chrome 76 से, ब्राउज़र लेज़ी लोडिंग को हैंडल करता है. इसके लिए, कस्टम लेज़ी लोडिंग कोड लिखने या अलग JavaScript लाइब्रेरी का इस्तेमाल करने की ज़रूरत नहीं होती.

ब्राउज़र को यह बताने के लिए कि आपको कोई इमेज चाहिए या iframe लेज़ी लोडिंग है, loading="lazy" एट्रिब्यूट का इस्तेमाल करें. "फ़ोल्ड के ऊपर" वाली इमेज और iframe सामान्य रूप से लोड होते हैं. साथ ही, नीचे दिए गए लेबल सिर्फ़ तब फ़ेच किए जाते हैं, जब उपयोगकर्ता उनके आस-पास स्क्रोल करता है.

<img src="image.jpg" loading="lazy" width="400" height="250" alt="...">

ज़्यादा जानकारी के लिए, web.dev पर वेब के लिए, ब्राउज़र लेवल की लेज़ी-लोडिंग की सुविधा देखें.

Chrome डेवलपर समिट 2019

Chrome डेवलपर समिट 11 और 12 नवंबर को होने वाला है.

यह वेब प्लैटफ़ॉर्म पर आने वाले नए टूल और अपडेट के बारे में जानने और Chrome की इंजीनियरिंग टीम की सीधे तौर पर बात करने का एक शानदार मौका है.

इसे हमारे YouTube चैनल पर लाइव स्ट्रीम किया जाएगा. इसके अलावा, Chrome Dev Summit 2019 की वेबसाइट पर जाकर, न्योते के लिए अनुरोध किया जा सकता है.

और ज़्यादा!

डेवलपर के लिए, Chrome 77 में कुछ ही बदलाव किए गए हैं, बेशक, और भी बहुत कुछ है.

Contact पिकर API, ऑरिजिन ट्रायल के तौर पर उपलब्ध एक नया टूल है. यह मांग पर उपलब्ध पिकर है. इसकी मदद से, उपयोगकर्ता अपनी संपर्क सूची से एंट्री या एंट्री चुन सकते हैं और चुने गए संपर्कों की सीमित जानकारी वेबसाइट के साथ शेयर कर सकते हैं.

इसके अलावा, intl.NumberFormat एपीआई में नई मेज़रमेंट इकाइयां मौजूद हैं.

इसके बारे में और पढ़ें

इसमें सिर्फ़ कुछ खास बातों के बारे में बताया गया है. Chrome 77 में और बदलावों के बारे में जानने के लिए, नीचे दिए गए लिंक देखें.

सदस्यता लें

हमारे वीडियो के बारे में अप-टू-डेट रहना चाहते हैं, तो हमारे Chrome डेवलपर YouTube चैनल की सदस्यता लें. जब भी हम कोई नया वीडियो लॉन्च करेंगे, तब आपको ईमेल से सूचना मिलेगी.

मैं हूं पीट लेपेज और Chrome 78 के रिलीज़ होते ही, मैं आपको बताऊंगी -- Chrome में नया क्या है!