क्या जावास्क्रिप्ट में कोई विकल्प मिल ऑब्जेक्ट का उपयोग करने के लिए मिलीसेकंड में समय प्राप्त करने का है, या कम से कम उस वस्तु का पुन: उपयोग करने का एक तरीका है, हर बार जब मुझे इस मूल्य को प्राप्त करने की आवश्यकता होती है, तो किसी नई वस्तु को तुरंत प्राप्त किए बिना? मैं यह इसलिए पूछ रहा हूं क्योंकि मैं जावास्क्रिप्ट में एक सरल गेम इंजन बनाने की कोशिश कर रहा हूं, और "डेल्टा फ्रेम टाइम" की गणना करते समय, मुझे हर फ्रेम में एक नया दिनांक ऑब्जेक्ट बनाना होगा। हालांकि मैं इसके प्रदर्शन निहितार्थ के बारे में बहुत चिंतित नहीं हूं, मुझे इस वस्तु द्वारा लौटाए गए सटीक समय की विश्वसनीयता के साथ कुछ समस्याएं हैं।
मुझे एनीमेशन में हर दूसरे या तो कुछ अजीब "कूद" मिलता है, और मुझे यकीन नहीं है कि यह जावास्क्रिप्ट के कचरा संग्रह से संबंधित है या इतनी तेजी से अपडेट करते समय दिनांक ऑब्जेक्ट की सीमा। यदि मैंने डेल्टा मान को कुछ स्थिर पर सेट किया है, तो एनीमेशन अगर पूरी तरह से चिकनी है, तो मुझे पूरा यकीन है कि यह "कूद" जिस तरह से मुझे समय मिलता है, उससे संबंधित है।
एकमात्र प्रासंगिक कोड जो मैं दे सकता हूं, वह यह है कि मैं डेल्टा समय की गणना करता हूं:
prevTime = curTime;
curTime = (new Date()).getTime();
deltaTime = curTime - prevTime;
आंदोलन / एनीमेशन की गणना करते समय, मैं डेल्टा समय के साथ एक स्थिर मान गुणा करता हूं।
यदि दिनांक ऑब्जेक्ट का उपयोग करके मिलीसेकंड में समय प्राप्त करने से बचने का कोई तरीका नहीं है, तो एक फ़ंक्शन होगा जो एक चर को बढ़ाता है (खेल शुरू होने के बाद से मिलीसेकंड में बीता हुआ समय), और जिसे एक दर पर सेटटेकर फ़ंक्शन का उपयोग करके कहा जाता है एक बार हर मिलीसेकंड एक कुशल और विश्वसनीय विकल्प होगा?
संपादित करें: मैंने अब अपने कोड को विभिन्न ब्राउज़रों में परीक्षण किया है और ऐसा लगता है कि यह "कूद" वास्तव में क्रोम में ही स्पष्ट है, फ़ायरफ़ॉक्स में नहीं। लेकिन यह तब भी अच्छा होगा जब दोनों ब्राउज़र में काम करने वाला कोई तरीका हो।
Date.getMillisecondsवर्तमान सेकंड में केवल मिलीसेकंड यानी 0 से 999 तक रिटर्न होता है? आप अपने उदाहरण में इस फ़ंक्शन का उपयोग नहीं कर रहे हैं, लेकिन शायद इसका उपयोग कहीं और किया जा रहा है, या एक अलग शाखा पर?