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

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

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

Chrome 49 से, timeStamp एक DOMHighResTimeStamp वैल्यू है. यह वैल्यू अब भी मिलीसेकंड में होती है, लेकिन माइक्रोसेकंड के रिज़ॉल्यूशन के साथ. इसका मतलब है कि वैल्यू में दशमलव वाला कॉम्पोनेंट शामिल होगा. इसके अलावा, वैल्यू को 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 में जोड़ा जा सकता है.