इवेंट के लिए ज़्यादा रिज़ॉल्यूशन के टाइमस्टैंप

Event इंटरफ़ेस की timeStamp प्रॉपर्टी से पता चलता है कि कोई इवेंट कब हुआ था.

Chrome के 49 से पहले के वर्शन में, इस timeStamp वैल्यू को DOMTimeStamp के तौर पर दिखाया जाता था. यह system epoch के बाद से मिलीसेकंड में होती है. यह वैल्यू, Date.now() से मिलने वाली वैल्यू की तरह ही होती है.

Chrome 49 और उसके बाद के वर्शन में, timeStamp एक DOMHighResTimeStamp वैल्यू है. यह वैल्यू अब भी मिलीसेकंड में है, लेकिन माइक्रोसेकंड में रिज़ॉल्यूशन है. इसका मतलब है कि वैल्यू में दशमलव कॉम्पोनेंट शामिल होगा. इसके अलावा, epoch के मुताबिक वैल्यू के बजाय, वैल्यू PerformanceTiming.navigationStart के मुताबिक होती है. इसका मतलब है कि उपयोगकर्ता ने पेज पर जिस समय तक नेविगेट किया था.

अतिरिक्त टाइमस्टैंप को सटीक बनाने के फ़ायदे, इन उदाहरणों में देखे जा सकते हैं:

अलग-अलग ब्राउज़र और लेगसी से जुड़ी खास बातें

अगर आपके पास कोई ऐसा मौजूदा कोड है जो दो इवेंट में से Event.timeStamp वैल्यू की तुलना करता है, तो आपको DOMHighResTimeStamp में शिफ़्ट होने पर, अपने कोड में बदलाव करने की ज़रूरत नहीं है. इसके अलावा, DOMHighResTimeStamp के साथ काम करने वाले ब्राउज़र पर, आपके मौजूदा कोड को माइक्रोसेकंड में ज़्यादा सटीक वैल्यू मिलने के साथ-साथ, DOMHighResTimeStamp की मोनोटोनिक तरीके से बढ़ोतरी होने की गारंटी होगी. इससे फ़र्क़ नहीं पड़ता कि वेब पेज को एक्ज़ीक्यूट करने के दौरान सिस्टम की घड़ी बदलती है या नहीं.

अगर Event.timeStamp की दो वैल्यू की तुलना करने के बजाय, आपके कोड को यह पता लगाना हो कि कोई इवेंट कितने समय पहले हुआ था, तो DOMHighResTimeStamp की नई वैल्यू की तुलना सीधे तौर पर performance.now() से की जा सकती है. साथ ही, अगर आपको सिस्टम इपोक के बाद से Event.timeStamp को मिलीसेकंड की निरपेक्ष संख्या में बदलना है, तो performance.timing.navigationStart में DOMHighResTimeStamp जोड़कर उस वैल्यू को पाएं.

इन दोनों मामलों में, DOMTimeStamp और DOMHighResTimeStamp का तरीका अलग-अलग होता है. हालांकि, माजिड वलिपोर के सौजन्य से इस कन्वर्ज़न फ़ंक्शन का इस्तेमाल करके, अपने क्रॉस-ब्राउज़र कोड को आसान बनाया जा सकता है. यह Event ऑब्जेक्ट को पैरामीटर के तौर पर लेता है और DOMHighResTimeStamp-जैसी वैल्यू दिखाता है, जिसकी तुलना performance.now() से की जा सकती है या performance.timing.navigationStart में जोड़ी जा सकती है.