0

DOM elements not removed after detaching a widget

asked 2013-09-01 21:47:41 +0800

pijmleko gravatar image pijmleko
0 1

updated 2013-09-01 23:22:59 +0800

ZK6.5.2 (and 6.5.4), Chrome and Firefox

This issue has came up when my UI got more complex. I have a listbox with a few columns and about 15 rows loaded into <include>. It loads and renders fine. After updating a list model, a few rows are not being removed from the list and are being left on UI, along with new rows from updated model. No javascript errors.

Now fun begins. When I started debugging this issue (with webinspector), I couldn't reproduce it. As soon as I disable debugger and reload page, it appears again. It seems to not be random, but time-related. For sure it happens on client side, since all requests/responses are correct and contains all expected widget uids.

I noticed that despite all rows being rendered, some of them are not registered in widget.js _binds map. Then when client receives an update, related DOM elements are not removed since _binds[uid] is undefined.

The bug seems to be somewhere around mount.js/mtAU() and afterLoad feature, but since I cannot debug it, I'm not sure. Obviously I cannot reproduce it with simple UI with single listbox either, so I cannot provide a test case.

Any ideas?

UPDATE 1:

this is caused by non-unique UUIDs used inside two <include> components I have on the page (one of them contains <listbox>). I'm confused - my understanding was that UUIDs, as name suggests, are unique within single html page.

UPDATE 2:

bug is not occurring after disabling UUID recycling. So it is server side after all. It's not a proper solution though. It seems that recycling is failing when within same request components from one <include> are destroyed and other <include> is populated.

delete flag offensive retag edit
Be the first one to answer this question!
Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

[hide preview]

Question tools

Follow
1 follower

RSS

Stats

Asked: 2013-09-01 21:47:41 +0800

Seen: 7 times

Last updated: Sep 01 '13

Support Options
  • Email Support
  • Training
  • Consulting
  • Outsourcing
Learn More