4 ms·
Would work quite well i think, at last if deployed to deno deploy
by Hexagon56k 3y ago
Would work quite well i think, at last if deployed to deno deploy
- yetihehe 3y agoAnd kill browsers... ws.onmessage = function(event) { Object.keys(cursors).forEach((id) => { if (!positions.find((pos) => pos.id === id)) { document.body.removeChild(cursors[id]); delete cursors[id]; } }); If I'm not mistaken, this has O(n^2) complexity and is executed on EACH position update. Unless it's autooptimized to not be a linear search on positions?
- Hexagon56k 3y agoIt was just a quickie for fun, but maybe I should look into that
- spdustin 3y agoYeah, I’d maybe make a set of just the position IDs, and do a negated .has() of that set to check if the cursor was removed. ws.onmessage = function(event) { const positionIds = new Set(positions.map(pos => pos.id)); Object.keys(cursors).forEach((id) => { if (!positionIds.has(id)) { document.body.removeChild(cursors[id]); delete cursors[id]; } }); }; Untested but that’s probably pretty close for phone typing
- Hexagon56k 3y agoAny code written on a phone is impressive ^^ Will try it out
- Hexagon56k 3y agoImplemented and working, should probably move this whole thing outside ws.onmessage too, could be run every fifth second or so.