npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ww-timer

v1.0.4

Published

The More accurate timer using Web Worker

Downloads

12

Readme

WW Timer

WW Timer

WW Timer is a highly accurate timer library for web browsers.

Why It's Needed

Typically, when implementing timer functionality in web browsers, the setTimeout or setInterval methods are used. However, due to the nature of JavaScript's execution model, achieving precise time measurement can be challenging.

JavaScript's asynchronous functions are subject to delays depending on the number of tasks the web browser is executing. This can result in the setTimeout and setInterval functions being deprioritized in the event loop, which, while generally inconsequential for standard functionality, can introduce critical errors in timing accuracy for timer implementations.

Solution

The solution lies in utilizing the Web Worker API supported by browsers. Since Web Workers operate independently of the browser's main thread, they are not affected by the complexity of the tasks being executed in the web app. This independence allows for more accurate time measurements, irrespective of the main thread's load.

Features

  • Accuracy: Provides highly accurate timing by circumventing the event loop's congestion.
  • Independence: Operates separately from the main thread, ensuring timer precision is maintained.
  • Ease of Use: Designed to be straightforward to implement within any web application.

Installation

# npm
npm install ww-timer
# yarn
yarn add ww-timer

Quick Start

// Import WW Timer
import WWTimer from 'ww-timer';

// Create a new timer
const timer = new WWTimer(() => {
  console.log('Timer tick');
}, 2000);

// Start the timer with a callback function
timer.start();

// Pause the timer
timer.pause();

// Destroy the timer instance
timer.destroy();

API Reference

  • new WWTimer(callback, interval): Creates a new WWTimer instance with a callback function to be executed at a specified interval.
  • start(): Starts the timer. The timer will call the callback function at the interval specified during the instance creation.
  • pause(): Pauses the timer. The timer can be resumed by calling start() again.
  • destroy(): Destroys the timer instance and frees up resources. After calling this method, the timer instance cannot be used or restarted.

Compatibility

Compatible with most modern web browsers that support the Web Workers API.

Contributing

Contributions to the WW Timer project are welcome. Please refer to the CONTRIBUTING.md file for more details.

License

WW Timer is released under the MIT License. See the LICENSE file for more information.