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