Hacker News new | ask | show | jobs
by Hexagon56k 1022 days ago
Would work quite well i think, at last if deployed to deno deploy
1 comments

And 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?
It was just a quickie for fun, but maybe I should look into that
Yeah, 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
Implemented and working, should probably move this whole thing outside ws.onmessage too, could be run every fifth second or so.
Any code written on a phone is impressive ^^ Will try it out