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
में जोड़ी जा सकती है.