/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
* vim: sw=2 ts=2 sts=2 et filetype=javascript
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
* You can obtain one at http://mozilla.org/MPL/2.0/. */
function loadURL(url,callback) {
var xhttp =
new XMLHttpRequest();
xhttp.onreadystatechange =
function() {
if (xhttp.readyState ==
4 && xhttp.status ==
200) {
callback(xhttp.responseText);
}
};
xhttp.open(
"GET", url,
true);
xhttp.send();
}
function dyn1(selector) {
// get an array of elements matching |selector|
var elems = Array.prototype.slice.call(document.querySelectorAll(selector))
// remove the first item in each grid
var removed = elems.map(
function(e) {
var child = e.children[
0];
if (child) {
var next = child.nextSibling;
e.removeChild(child);
return [ e, child, next ];
}
else {
return null;
}
});
document.body.style.display =
'block';
document.body.offsetHeight;
// insert the removed item
removed.map(
function(a) {
if (a) {
a[
0].insertBefore(a[
1],a[
2]);
}
});
}
function dyn2(selector) {
// get an array of elements matching |selector|
var elems = Array.prototype.slice.call(document.querySelectorAll(selector))
// inject a new first item in each grid
var inserted = elems.map(
function(e) {
var child = document.createElement(
'span');
e.insertBefore(child, e.firstChild);
return [ e, child ];
});
document.body.style.display =
'block';
document.body.offsetHeight;
// remove the inserted item
inserted.map(
function(a) {
a[
0].removeChild(a[
1]);
});
}
function dyn3(selector) {
// get an array of elements matching |selector|
var elems = Array.prototype.slice.call(document.querySelectorAll(selector))
// remove the second item in each grid
var removed = elems.map(
function(e) {
var child = e.children[
1];
if (child) {
var next = child.nextSibling;
e.removeChild(child);
return [ e, child, next ];
}
else {
return null;
}
});
document.body.style.display =
'block';
document.body.offsetHeight;
// insert the removed items
removed.map(
function(a) {
if (a) {
a[
0].insertBefore(a[
1],a[
2]);
}
});
}
function dyn4(selector) {
dyn3(selector);
dyn2(selector);
}
function dyn5(selector) {
// get an array of elements matching |selector|
var elems = Array.prototype.slice.call(document.querySelectorAll(selector))
// inject 20 new items in each grid
var inserted = elems.map(
function(e) {
var a =
new Array;
for (
var i =
0; i <
20; ++i) {
var child = document.createElement(
'span');
e.insertBefore(child, e.firstChild);
a.push(child);
}
return [ e, a ];
});
document.body.style.display =
'block';
document.body.offsetHeight;
// remove the inserted item
inserted.map(
function(a) {
a[
1].forEach(
function(child) {
a[
0].removeChild(child);
});
});
}
function dynamicTest(url, callback) {
document.body.style.display=
'';
document.body.offsetHeight;
loadURL(url,callback);
}