Skip to content

Automatically batch google api requests that are made within a short timespan

License

Notifications You must be signed in to change notification settings

frederikcreemers/GapiAutoBatcher

Repository files navigation

GapiAutoBatcher

GapiAutoBatcher automatically batches requests to Google's APIs, when they are made within a short interval

Including the script

When you load Google's javascript api, they ask you to provide a callback function:

 <script src="https://apis.google.com/js/client.js?onload=handleClientLoad"></script>

This forces you to write one function that is notified when the library is ready for use. GapiAutoBatcher contains a utility that allows you to treat the google api loading like a promise. But for that to work, you'll have to load GapiAutoBatcher before the api client library. If you don't want to use the promise, you can just load GapiAutoBatch.js at the end of the body element, or wherever in your HTML you'd like.

Here's an example of how you can use this promise:

<script src="GapiAutoBatcher.js"></script> 
<!-- set onload to initGapi -->
<script src="https://apis.google.com/js/client.js?onload=initGapi"></script>
<script>
GapiAutoBatcher.gapi.then(function(){
	// You can now use gapi.load to load the apis you want, and use them. 
});
</script>

Using the GapiAutoBatcher

To start batching requests, you create a new GapiAutoBatcher object. You can do thos by calling GapiAutoBatcher(config). It works both with and without new.

GapiAutoBatcher(config)

constructs a new autobatcher

Arguments

  • config - configuration options. We currently support 2 options. If an option isn't given, it is taken from GapiAutoBatcher.defaults.
    • batchInterval - If a request is called within batchInterval milliseconds of the previous one, it is included in the batch.
    • maxWait - the maximum number of miliseconds any request can wait before it has to be executed.

returns the original request, so you can chain request.then() to this call.

You can change any of these configuration options by changing properties of GapiAutoBatcher.config.

GapiAutoBatcher().execute(request)

Executes the request, adding it to a batch.

arguments

  • request - the request to be batched.

commands used during development

  • npm test - Starts the karma test runner, watching the directory for changes.
  • npm start - If you have python installed, this command starts a simple web server that serves this project. Google's javascript api's don't work in a html file on the file:// protocol, so run this to view example.html
  • sh build.sh - runs UglifyJs 2 to produce GapiAutoBatcher.min.js

About

Automatically batch google api requests that are made within a short timespan

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published