Hi all! I've been working on a board game using elm and I'm using svg for rendering. I render the game by first drawing the board in the background, and then I render one square for each tile that can hold a game piece. When implementing this, I created a svg symbol for every variation of the tiles (empty, filled, mouse over,...) and for each tile rendered, I reference the symbol to use with the *use* tag and *xlink:href* attribute.
To start with, for unknown reason, chrome fires an event every time the mouse moves over a tile even if I only register for mouseover events on the tiles. This would be fine if it wasn't for the fact that the whole board is being re-rendered on *every* mouseover event, even though the underlying model never changes (mouse is only moving inside a tile, so ideally I wouldn't have to redraw anything). When digging into the javascript code, I noticed that the diff mechanism always marks the whole model as being changed, and therefor force a full re-render. However, when I manually diff json representations of the model, I see that they are identical. I noticed that when *diffFacts* is being called with the use tags' attributes object (containing the *xlink:href*), it always marks it as a change even if they are identical. For comparison, I made an isolated version where I compared rendering two tiles using symbols vs just simply rendering rect tags directly (switching the fill color). And as expected, for the non-symbol version, re-render is only triggered when the model actually changes, and always triggered when using symbols. Here is a gist for the isolated version https://gist.github.com/Shump/bd778bde23af0dd3f8c95f92ec45fc33 Any idea if this is expected behavior? Or is this a bug with the virtual dom code? -- You received this message because you are subscribed to the Google Groups "Elm Discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to elm-discuss+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.