Skip to content

Instantly share code, notes, and snippets.

@cvazac
cvazac / gist:cb96774bd62f7eb29f63
Created May 8, 2015 04:48
average response time by domain
;(function(domains)
{
var entries = window.performance.getEntries();
var result = {
total: 0,
count: 0,
domains: {}
};
for (var entry = 0; entry < entries.length; entry++)
@cvazac
cvazac / gist:fe2666834e7f157a1fe7
Last active August 29, 2015 14:21
instrument performance getEntries
;(function(p){
if (!p) return;
function stash(strMethod)
{
p["__orig_" + strMethod] = p[strMethod];
}
stash("getEntries");
stash("webkitClearResourceTimings");
@cvazac
cvazac / gist:f2cd83ea0058246d8e5c
Created May 21, 2015 16:38
performance.clearResourceTimings for SPAs
(function(w){
if (!w || !w.performance) {
return;
}
var clearResourceTimings = performance.clearResourceTimings || performance.webkitClearResourceTimings;
if (clearResourceTimings) {
BOOMR.subscribe("onbeacon", clearResourceTimings);
}
})(window);
@cvazac
cvazac / gist:c1554c3e9609041725a8
Created May 21, 2015 16:49
performance.setResourceTimingBufferSize for SPAs
var setResourceTimingBufferSize == window && window.performance && (performance.setResourceTimingBufferSize || performance.webkitSetResourceTimingBufferSize);
if (setResourceTimingBufferSize) {
setResourceTimingBufferSize(<size>);
}
@cvazac
cvazac / gist:34ce10b4b423b3e60c8f
Created May 28, 2015 23:05
BOOMR.addVar(...) `onBoomerangLoaded`
function addVars() {
BOOMR.addVar({
"UserId": SOASTA.UserId,
"ClientId": SOASTA.ClientId,
"GroupId": SOASTA.GroupId,
"UniqueId": SOASTA.UniqueId
});
}
if (document.addEventListener) {
@cvazac
cvazac / gist:c627d614abf226dbcc4d
Last active May 8, 2017 15:31
RUM-SpeedIndex boomerang.js plugin
/******************************************************************************
Copyright (c) 2014, Google Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
(function() {
//https://developers.google.com/doubleclick-gpt/reference
var slots = ["ad_bnr_atf_01", "ad_bnr_btf_02"],
slotCount = window.performance && performance.mark ? slots.length : 0;
var boomr_ready = false;
BOOMR = window.BOOMR || {};
BOOMR.plugins = BOOMR.plugins || {};
BOOMR.plugins.GPT = {
(function(w){
if (!w || !w.performance) {
return;
}
var clearResourceTimings = w.performance.clearResourceTimings || w.performance.webkitClearResourceTimings;
if (!clearResourceTimings) {
return;
}
(function(w) {
if (!w || !("performance" in w) || !w.performance || !performance.getEntriesByName) {
return;
}
BOOMR = w.BOOMR || {};
BOOMR.plugins = BOOMR.plugins || {};
BOOMR.plugins.WaitForMark = {
markFound: false,
init: function() {
(function(w) {
if (w != top) return
w.addEventListener('load', function() {
var iframe = document.createElement('iframe')
iframe.style.display = 'none'
iframe.src = location.href
document.body.appendChild(iframe)
iframe.addEventListener('load', function() {
var outer = w.performance