Public
Edited
Dec 23, 2022
1 fork
1 star
Insert cell
Insert cell
Insert cell
viewof click = Inputs.button("Click")
Insert cell
fast = md`${click} click${click == 1 ? "" : "s"}! (Much faster)`
Insert cell
slow = Promises.delay().then(() => {
click;
let i;
for (i = 0; i < 2 * 10 ** 9; i++) {
Math.sqrt(i);
}
return md`${click} click${click == 1 ? "" : "s"}? (Still slow)`;
})
Insert cell
Insert cell
viewof dont_click = Inputs.button("Don't click!")
Insert cell
also_slow = md`${dont_click} click${dont_click == 1 ? "" : "s"}! (Should be fast but is not.)`
Insert cell
// Both cells are slow with this approach:
still_slow = {
dont_click;
let i;
for (i = 0; i < 2 * 10 ** 9; i++) {
Math.sqrt(i);
}
return md`${dont_click} click${
dont_click == 1 ? "" : "s"
}? (Expected to be slow)`;
}
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more