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

backbone-abort-pending

v1.0.0

Published

Backbone.sync decorator for aborting pending requests

Downloads

279

Readme

backbone-abort-pending

Backbone.sync wrapper for preventing request race conditions.

Loose fork of backbone-safesync.

npm Version Build Status Dependency Status

Installation

Install using npm:

$ npm install backbone-abort-pending

Usage

var Backbone = require('backbone');
var abortPending = require('backbone-abort-pending');

// Wrap Backbone.sync with new functionality:
abortPending(Backbone);

// Then call models/collections with abortPending option:
myCollection.fetch();
myCollection.fetch({ abortPending: true });  // In-flight request aborted

Motivation

This Backbone plugin aims to solve race conditions surrounding the order of requests being issued versus the order in which they resolve. Imagine an auto-complete input field that is powered by a collection fetch under the hood. If the user types "cat", waits long enough for any throttle/debounce to end, and then replaces the input with "dog" before the first request finishes, the displayed search result view should never finalize with the results of "cat", regardless of whether the request for "cat" or "dog" finished last. This plugin attempts to solve such race conditions by aborting in-flight requests, so that the last request made wins.

API

abortPending(Backbone)

Main export. Takes a given Backbone instance and decorates Backbone.sync to provide new functionality. Returns the modified Backbone instance.

abortPending (as a $.ajax option)

Triggers the plugin to kick in. If a request is in flight that has the same URL and method as the current request, the original request is aborted. This will naturally cause an error event to be emitted by the given model/collection. Handle accordingly.

License

MIT