Orphaned events in new table component

I am cleaning up the performance off my apps, and I noticed some inefficient behavior regarding one of my tables.

There were definitely some things to clean up, but I was left with one issues which I could not get rid of. It turns out is an orphaned events in the table causing issues.

Even thought the table (called feedback_overzicht) has no event handlers (see image 1), inspecting <table_name>.events reveals it does still have 2 events. The interesting part is that 1 of these 2 events is referencing the table itself, which causes the pop-up in image 2.

Inspecting <table_name>.events does indeed show 2 older events (image 3). But I cannot seem to delete them. Because 1 of these events in referencing the table itself, it contributes to a long dependency chain in the performance stats.

Is this a known issue? And how will I be able to clean up the events, thanks in advance!

image 1

image 2

image 3

outside of suggesting you delete the table and re-add it, I'm not sure I can fix this but out of curiosity what have you tried for removing those events? Here's a couple ideas that might have been overlooked(?)

  • make a query just to run some JS and put feedback_overzicht.removeEventListener("save", run, {passive: true});. hopefully that 'method' property in image3 is the literal name of the event listener.
  • perhaps adding back both events with the same properties then deleting? (since everything is strings, maybe it's just like a pointer issue and you need the event name to point to something not null so you can delete it? =/ thats an out there one though :joy: :sweat_smile:)
  • Array.splice() modifies the original array (l-value), updates the length and reindexes, so maybe a JS block with feedback_overzicht.events.splice(0, -1). .pop() and .shift() also do the same but you would need to call them twice.
  • you could try the jquery creators solution
    // Array Remove - By John Resig (MIT Licensed)
    Array.prototype.remove = function(from, to) {
      var rest = this.slice((to || from) + 1 || this.length);
      this.length = from < 0 ? this.length + from : from;
      return this.push.apply(this, rest);
    };
    feedback_overzicht.events.remove(0, -1);
    

the code only needs to run once, so you'd just need to make a new Run JS Code query and copy/pasta then run the code once. you can delete it afterwards and check the memory/state to see if it worked. :no_mouth: good luck