-
अंकों के गिरने वाले effect के साथ Flip Clock plugin
-
countdown, clock आदि में उपयोग
-
कोई dependency नहीं, responsive/mobile support, तेज animation
-
server time sync
-
प्रति सेकंड कई बार बदलाव और overlap संभव
-
timer algorithm, JS
setIntervaldrift को अपने-आप ठीक करता है
4 टिप्पणियां
आंतरिक रूप से
tickइंजन का उपयोग करता है https://github.com/pqina/tick/यह एक लाइब्रेरी है जो flip, digital dot शैली, number animation, line (सीधी रेखा, वृत्त), boom (आवाज़ निकालने वाला) आदि को सपोर्ट करती है।
setTimeoutdrift को अपने-आप सही करता है, यह दिलचस्प लगा, इसलिए देखा कि यह किस हिस्से में होता है। पता चला किtickइंजन केtimer.jsहिस्से में इसका प्रोसेसिंग किया गया है। आसान शब्दों में कहें तो, जब शुरुआत में समय चलना शुरू होता है, तबDate.now() + intervalकरके अगले tick का सटीक epoch (tickExpectedTime) निकाला जाता है, फिरsetTimeout()के जरिए अगला tick आने पर उस समय के मौजूदाDate.now()मान (currentTime) की तुलनाtickExpectedTimeसे करके यह मापा जाता है कि त्रुटि कितनी है।https://github.com/pqina/tick/blob/master/src/core/js/timer.js
अब देख रहा हूँ कि server time synchronization के लिए एक सरल correction भी शामिल है। request भेजते समय और response प्राप्त करते समय के time difference को जाँचकर, उस अंतर का आधा (= लगभग server से client तक आने में लगा समय) server से लाए गए समय में जोड़ देता है। ऐसा यथासंभव सटीक समय को synchronize करने के लिए किया गया है। लेकिन HTTP header का time value सेकंड-स्तर का होता है, इसलिए आम तौर पर इतना बड़ा time difference नहीं होगा, ऐसा भी लगता है…
मुझे यह बात बाद में पता चली कि सर्वर से लाए गए समय मान में round-trip time (RTT) का आधा जोड़ने वाली इस time synchronization विधि को ‘Cristian's algorithm’ कहा जाता है।
https://en.wikipedia.org/wiki/Cristian%27s_algorithm
https://www.geeksforgeeks.org/cristians-algorithm/