पब्लिश किया गया: 31 जुलाई, 2025
Chrome, Chrome 139 से Soft Navigations API के लिए, नया ऑरिजिन ट्रायल लॉन्च कर रहा है. हम इस एपीआई पर पहले भी एक्सपेरिमेंट कर चुके हैं. इस ऑरिजिन ट्रायल की मदद से साइटें, एपीआई को अपनी साइट पर असली उपयोगकर्ताओं के साथ आज़मा सकती हैं. इससे एपीआई की फ़ील्ड टेस्टिंग की जा सकती है. साथ ही, Chrome टीम को सुझाव/राय दी जा सकती है या शिकायत की जा सकती है.
सॉफ़्ट नेविगेशन क्या होते हैं?
सॉफ़्ट नेविगेशन तब होता है, जब JavaScript किसी नेविगेशन (उदाहरण के लिए, किसी लिंक पर क्लिक करना) को इंटरसेप्ट करती है और नए पेज को लोड करने के बजाय, मौजूदा पेज पर मौजूद कॉन्टेंट को अपडेट करती है. इसके बाद, पता बार में यूआरएल अपडेट किया जाता है. इसमें इतिहास की स्थिति भी शामिल होती है, ताकि आगे और पीछे के सॉफ़्ट नेविगेशन की अनुमति दी जा सके. उपयोगकर्ता को ये सामान्य नेविगेशन की तरह ही दिखते हैं. हालांकि, ब्राउज़र के हिसाब से पेज अब भी ओरिजनल पेज ही होता है.
सॉफ़्ट नेविगेशन एपीआई की ज़रूरत क्यों है
Soft Navigations API एक प्रस्तावित एपीआई है. यह अनुमान के आधार पर "सॉफ़्ट नेविगेशन" का पता लगाने की अनुमति देता है. इनका इस्तेमाल सिंगल पेज ऐप्लिकेशन (एसपीए) साइटें करती हैं. सॉफ़्ट नेविगेशन में, पेज पर नेविगेट नहीं किया जाता. इसका मतलब है कि नेविगेशन के दौरान होने वाली कुछ कार्रवाइयों को JavaScript की मदद से मैन्युअल तरीके से मैनेज करना होगा. मौजूदा एपीआई की मदद से, नेविगेशन के इतिहास को मैनेज करने जैसी कुछ कार्रवाइयां की जा सकती हैं. हालांकि, इन नेविगेशन के लिए अन्य कार्रवाइयां नहीं की जा सकतीं. जैसे, वेबसाइट की परफ़ॉर्मेंस की मेट्रिक मेज़र करना.
सॉफ़्ट नेविगेशन एपीआई की मदद से, सॉफ़्ट नेविगेशन को मॉनिटर किया जा सकता है. सॉफ़्ट नेविगेशन शुरू करने वाली JavaScript (आम तौर पर, JavaScript फ़्रेमवर्क) को पता होता है कि नेविगेशन कब होता है. हालांकि, अन्य JavaScript और ब्राउज़र को इसकी जानकारी नहीं होती.
वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी और एसपीए
Soft Navigation API का मुख्य मकसद, एसपीए के लिए वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी को मेज़र करने की अनुमति देना है. वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी को ब्राउज़र और रीयल यूज़र मॉनिटरिंग (आरयूएम) JavaScript लाइब्रेरी, दोनों से मेज़र किया जाता है. ब्राउज़र से मेज़र की गई जानकारी, Chrome उपयोगकर्ता अनुभव रिपोर्ट जैसे टूल में दिखती है.
JavaScript फ़्रेमवर्क, वेबसाइट की परफ़ॉर्मेंस की मेट्रिक के कुछ पहलुओं को मेज़र कर सकते हैं. खास तौर पर, पेज के रिस्पॉन्स में लगने वाला समय (आईएनपी) और लेआउट में होने वाला कुल बदलाव (सीएलएस), प्रिमिटिव पर आधारित होते हैं. जैसे, Event Timing API और Layout Instability API. इनका इस्तेमाल किसी भी समयावधि के लिए किया जा सकता है, ताकि आईएनपी और सीएलएस मेट्रिक का हिसाब लगाया जा सके. हालांकि, ब्राउज़र पेज नेविगेशन और इंटरैक्शन के आधार पर, सबसे बड़े एलिमेंट को रेंडर करने में लगने वाले समय (एलसीपी) की रिपोर्ट करता है और इसे फ़ाइनल करता है. इसलिए, JavaScript फ़्रेमवर्क को एसपीए के लिए, शुरुआती लोडिंग परफ़ॉर्मेंस के अलावा किसी और चीज़ की जानकारी नहीं होती.
सॉफ़्ट नेविगेशन एपीआई, एसपीए के लिए वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी देने वाली मेट्रिक को कैसे मेज़र करता है
Soft Navigation API के पहले वर्शन में, सॉफ्ट नेविगेशन के ह्यूरिस्टिक को एलसीपी रीसेट करने के साथ जोड़ा गया था. रीसेट होने के बाद, नए कॉन्टेंटफ़ुल पेंट के लिए सॉफ्ट नेविगेशन के लिए एलसीपी को फिर से भेजा जा सकता है. इससे सॉफ्ट नेविगेशन के लिए इस मेट्रिक को मेज़र किया जा सकता है.
इस नए वर्शन में, अलग तरीके से काम किया जाता है. साथ ही, इन कॉन्सेप्ट को Soft Navigation API और Interaction to Contentful Paint की नई परफ़ॉर्मेंस एंट्री में अलग-अलग किया जाता है. interaction-contentful-paint एंट्री, इंटरैक्शन के बाद "कॉन्टेंटफ़ुल पेंट" को मेज़र करती है. फ़िलहाल, यह सिर्फ़ सॉफ्ट नेविगेशन के लिए दिखता है. हालांकि, अगर इसे सभी इंटरैक्शन के लिए चालू किया जाता है, तो एलसीपी के अलावा, इस्तेमाल के अन्य संभावित उदाहरण भी दिख सकते हैं.
एपीआई ने largest-contentful-paint, interaction-contentful-paint, event-timing, और layout-shift परफ़ॉर्मेंस एंट्री में भी बदलाव किया है. अब इनमें एक आइडेंटिफ़ायर शामिल होता है, जिससे पता चलता है कि एंट्री किस नेविगेशन के लिए है. परफ़ॉर्मेंस एंट्री, उस इवेंट के बाद जनरेट होती हैं जिसकी परफ़ॉर्मेंस मेज़र की जा रही है. आम तौर पर, ऐसा तब होता है, जब कोई गतिविधि नहीं हो रही होती है. इसका मतलब है कि परफ़ॉर्मेंस एंट्री के जारी होने तक, यूआरएल अक्सर बदल चुका होगा. एंट्री के साथ नेविगेशन को शामिल करने से, दिए गए यूआरएल के लिए वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी को मेज़र करना बहुत आसान हो जाता है. इसके लिए, परफ़ॉर्मेंस एंट्री के समय को सॉफ्ट नेविगेशन एंट्री के समय से मैच करने की ज़रूरत नहीं होती.
ह्यूरिस्टिक का इस्तेमाल क्यों किया जाता है?
Soft Navigation API, इन स्थितियों में सॉफ्ट नेविगेशन को ध्यान में रखता है:
- उपयोगकर्ता के आधार पर इंटरैक्शन होता है (उपयोगकर्ता के इंटरैक्शन के बिना यूआरएल अपडेट होने पर, उसे नहीं गिना जाता)
- … जिससे DOM में बदलाव होता है और पेंट होता है
- … और यूआरएल अपडेट हो जाता है
- यूआरएल अपडेट करना. इसमें इतिहास में बदलाव करना भी शामिल है.
यह एपीआई, अनुमान लगाने के सिद्धांत पर आधारित है. यह JavaScript फ़्रेमवर्क को सॉफ्ट नेविगेशन "एमिट" करने या Navigation API पर बनाने की अनुमति नहीं देता. इससे यह समझने में मदद मिलती है कि सॉफ्ट नेविगेशन क्या है. इससे कोई फ़र्क़ नहीं पड़ता कि फ़्रेमवर्क क्या है या डेवलपर इसका इस्तेमाल कैसे करता है.
फ़्रेमवर्क या डेवलपर, उपयोगकर्ता के इंटरैक्शन या DOM अपडेट के बिना भी, सॉफ्ट नेविगेशन के लिए यूआरएल अपडेट कर सकते हैं. हम इसे उपयोगकर्ता के लिए नेविगेशन मानते हैं. वे यूआरएल को अलग-अलग समय पर भी अपडेट कर सकते हैं. जैसे, इंटरैक्शन शुरू होने पर, इंटरैक्शन पूरा होने पर या इंटरैक्शन के बीच में किसी भी समय.
फ़्रेमवर्क के विकल्पों पर भरोसा करने के बजाय, ब्राउज़र में सॉफ्ट नेविगेशन का पता लगाने की सुविधा को शामिल करने से, कैननिकल 'अनुभवजन्य' सिद्धांत (इस ऑरिजिन ट्रायल से मिले आपके सुझाव के साथ) तय होते हैं. इससे हमें बड़े पैमाने पर सॉफ्ट नेविगेशन के लिए, Core Web Vitals को मेज़र करने में मदद मिलेगी. साथ ही, हम बड़े पैमाने पर ऐसे मेज़रमेंट की तुलना कर पाएंगे.
फ़्रेमवर्क और डेवलपर, Soft Navigations API के अनुमानित तरीके को भी अनदेखा कर सकते हैं. साथ ही, अपनी ज़रूरत के हिसाब से परफ़ॉर्मेंस की अन्य मेट्रिक मेज़र करने के लिए, इवेंट टाइमिंग, लेआउट इंस्टेबिलिटी, और इंटरैक्शन टू कॉन्टेंटफ़ुल पेंट एपीआई का इस्तेमाल कर सकते हैं. हालांकि, हम अनुमानित तरीके का इस्तेमाल करके कोर वेब वाइटल मेज़र करने का सुझाव देते हैं, ताकि सभी साइटों पर मेज़रमेंट किया जा सके.
सॉफ़्ट नेविगेशन एपीआई की जांच करने के लिए मदद चाहिए
हमें Soft Navigations API को टेस्ट करने में आपकी मदद चाहिए. इससे यह पता लगाया जा सकेगा कि अनुमान लगाने का तरीका, आपकी उम्मीदों के मुताबिक काम कर रहा है या नहीं. क्या ऐसे उदाहरण हैं जिनमें एपीआई, सॉफ्ट नेविगेशन की जानकारी नहीं देता है, जबकि आपको लगता है कि वे हुए हैं? इसके उलट, क्या एपीआई उन नेविगेशन को बार-बार दोहराता है जिन्हें आपने सॉफ्ट नेविगेशन नहीं माना है?
हमने देखा है कि इन वजहों से समस्याएं आती हैं: जब किसी यूआरएल को इतिहास जोड़ने के बजाय replaceState से अपडेट किया जाता है या जब उपयोगकर्ता की ओर से शुरू नहीं किया गया नेविगेशन होता है. उदाहरण के लिए, टाइम आउट होने पर लॉग आउट करना. दोनों मामलों में, अनुमान लगाने के तरीके से मेल न खाने की वजह बताई गई है. Chrome टीम को इन मामलों को शामिल न करने में कोई समस्या नहीं है. हालांकि, हम वेब डेवलपर से जानना चाहते हैं कि क्या वे इस बात से सहमत हैं. हमें खास तौर पर उन मामलों के बारे में बताएं जिनमें ह्यूरिस्टिक्स की शर्तें पूरी होने के बावजूद, एपीआई अब भी सॉफ्ट नेविगेशन को नहीं पहचानता है.
इसके अलावा, हम यह भी जानना चाहते हैं कि क्या यह एपीआई और इंटरैक्शन टू कॉन्टेंटफ़ुल पेंट प्रिमिटिव, एसपीए के लिए परफ़ॉर्मेंस की अहम जानकारी को मेज़र करने की सुविधा देने के मुख्य इस्तेमाल के उदाहरण को पूरा करता है.
हम चाहते हैं कि एपीआई ज़्यादा से ज़्यादा लोगों के काम आए. इसे लॉन्च करने से पहले ऐसा करना ज़्यादा आसान होता है. लॉन्च होने के बाद, साइटें इसे लागू करने पर निर्भर हो जाती हैं. इसलिए, हम एसपीए डेवलपर और इन साइटों की वेब परफ़ॉर्मेंस का आकलन करने में दिलचस्पी रखने वाले लोगों से अनुरोध करते हैं कि वे इस एपीआई का इस्तेमाल करें और हमें बताएं कि यह उनके लिए कैसे काम करता है.
जांच करने का तरीका
एपीआई को स्थानीय तौर पर, Chrome फ़्लैग या कमांड लाइन के विकल्पों की मदद से टेस्ट किया जा सकता है. इसके अलावा, इसे ऑरिजिन ट्रायल के साथ फ़ील्ड में टेस्ट किया जा सकता है.
एपीआई के बारे में ज़्यादा तकनीकी जानकारी के लिए, हमारे दस्तावेज़ या GitHub डेटाबेस देखें. खास तौर पर, वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी (कोर वेब वाइटल) को मेज़र करने का तरीका देखें. इसके अलावा, web-vitals लाइब्रेरी का एक्सपेरिमेंटल सॉफ़्ट नेविगेशन वर्शन उपलब्ध है.
सुझाव/राय दें या शिकायत करें
हम इस एक्सपेरिमेंट के बारे में यहां सुझाव/राय/शिकायत ले रहे हैं:
- एपीआई के बारे में सुझाव/राय देने या शिकायत करने के लिए, GitHub पर समस्याएं सबमिट करें.
- अगर Chromium को लागू करने से जुड़ी कोई समस्या है और वह पहले से मौजूद समस्याओं में शामिल नहीं है, तो Chrome के इश्यू ट्रैकर पर इसकी शिकायत करें.
- वेब वाइटल्स के बारे में सामान्य सुझाव, शिकायत या राय web-vitals-feedback@googlegroups.com पर शेयर की जा सकती है.
अगर आपको कोई समस्या आ रही है, तो ज़्यादा परेशान न हों. हमें किसी भी जगह पर सुझाव/राय दें या शिकायत करें. हम दोनों जगहों पर समस्याओं को प्राथमिकता देंगे और उन्हें सही जगह पर भेजेंगे.