<html>
<head>
<meta charset="utf-8">
<title>Line Update</title>
<meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no">
<script src='https://api.mapbox.com/mapbox-gl-js/v3.0.0-beta.5/mapbox-gl.js'></script>
<link href='https://api.mapbox.com/mapbox-gl-js/v3.0.0-beta.5/mapbox-gl.css' rel='stylesheet' />
<style>
body { margin: 0; padding: 0; }
#map { position: absolute; top: 0; bottom: 0; width: 100%; }
</style>
</head>
<body>
<div id="map"></div>
<script>
mapboxgl.accessToken = 'YOUR_MAPBOX_ACCESS_TOKEN';
const map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/mapbox/standard-beta',
zoom: 17,
center: [0, 0],
antialias: true, // not needed to reproduce, but possibly increases frequency of the issue
});
const geojson = {
'type': 'FeatureCollection',
'features': [{'type': 'Feature', 'geometry': {'type': 'LineString', 'coordinates': []}}],
};
let prevElapsedMs = 0;
function animate() {
const elapsedMs = performance.now();
const deltaMs = prevElapsedMs == 0 ? 0 : elapsedMs - prevElapsedMs;
prevElapsedMs = elapsedMs;
if (deltaMs > 30)
console.log(Math.round(elapsedMs) + ': ' + Math.round(deltaMs * 10) / 10);
for (let i = 0; i < 100; i++) // not needed, but increases frequency of issue
map.getSource('line').setData(geojson);
requestAnimationFrame(animate);
}
map.on('load', () => {
map.addSource('line', {type: 'geojson', data: geojson});
map.addLayer({
'id': 'my-line',
'type': 'line',
'source': 'line',
'layout': {'line-cap': 'round', 'line-join': 'round'},
'paint': {'line-color': '#ff0000', 'line-width': 1}
});
animate();
});
</script>
</body>
</html>
Output
You can jump to the latest bin by adding /latest
to your URL
Keyboard Shortcuts
Shortcut | Action |
---|---|
ctrl + [num] | Toggle nth panel |
ctrl + 0 | Close focused panel |
ctrl + enter | Re-render output. If console visible: run JS in console |
Ctrl + l | Clear the console |
ctrl + / | Toggle comment on selected lines |
ctrl + ] | Indents selected lines |
ctrl + [ | Unindents selected lines |
tab | Code complete & Emmet expand |
ctrl + shift + L | Beautify code in active panel |
ctrl + s | Save & lock current Bin from further changes |
ctrl + shift + s | Open the share options |
ctrl + y | Archive Bin |
Complete list of JS Bin shortcuts |
JS Bin URLs
URL | Action |
---|---|
/ | Show the full rendered output. This content will update in real time as it's updated from the /edit url. |
/edit | Edit the current bin |
/watch | Follow a Code Casting session |
/embed | Create an embeddable version of the bin |
/latest | Load the very latest bin (/latest goes in place of the revision) |
/[username]/last | View the last edited bin for this user |
/[username]/last/edit | Edit the last edited bin for this user |
/[username]/last/watch | Follow the Code Casting session for the latest bin for this user |
/quiet | Remove analytics and edit button from rendered output |
.js | Load only the JavaScript for a bin |
.css | Load only the CSS for a bin |
Except for username prefixed urls, the url may start with http://jsbin.com/abc and the url fragments can be added to the url to view it differently. |