Skip to content

Instantly share code, notes, and snippets.

View rjbultitude's full-sized avatar

Rich rjbultitude

View GitHub Profile
@rjbultitude
rjbultitude / is-good-performance.js
Created May 13, 2017 13:27
Function for testing processing power of client
// idea taken from http://stackoverflow.com/questions/8691756/how-can-i-test-the-users-computers-processing-power-using-javascript
isGoodPerformance: function isGoodPerformance(benchMarkTestFunction) {
var _startTime = new Date().getTime();
benchMarkTestFunction(); // render frame for example
var _endTime = new Date().getTime();
var _elapsedMilliseconds = _endTime - _startTime;
var _acceptableTime = 1000; // one second
return _elapsedMilliseconds < _acceptableTime; // some number being acceptable performace
}
@rjbultitude
rjbultitude / hbs-utilities.js
Last active March 1, 2017 16:23
A CJS module that offers three useful methods for compiling and rendering handlebars templates
const Handlebars = require('handlebars');
const makeRequest = require('./make-xhr');
module.exports = function hbsUtilities() {
function loadTemplate(url, callback) {
var hbsTmplRequest = makeRequest('GET', url);
hbsTmplRequest.then(function success(data) {
callback(data);
}, function failure(errorData) {
@rjbultitude
rjbultitude / xhr-load-json.js
Created September 4, 2016 18:25
A function that makes an XHR expecting and returning JSON. In CJS format
'use strict';
module.exports = function () {
return function(file, callback, errorCallback) {
var xhr = new XMLHttpRequest();
xhr.callback = callback;
if (xhr.overrideMimeType) {
xhr.overrideMimeType('application/json');
}
function duplicateArray(newArray, array, times) {
for (var i = 0; i < times; i++) {
newArray = newArray.concat(array);
}
return newArray;
}
@rjbultitude
rjbultitude / log-focussed-el-on-tab.js
Created August 13, 2016 21:08
Log focussed DOM element on tab
document.addEventListener('keydown' ,function (e) {
if (e.which === 9) {
setTimeout(function() {
console.log(document.activeElement);
}, 100);
}
});
@rjbultitude
rjbultitude / xhr-promise.js
Last active March 16, 2021 04:12
XHR returned as a promise
function makeRequest(method, url) {
return new Promise(function(resolve, reject) {
var xhr = new XMLHttpRequest();
xhr.open(method, url);
xhr.onload = function() {
if (this.status >= 200 && this.status < 300) {
resolve(xhr.response);
} else {
reject({
status: this.status,