We listen to diagram model changes through “diagram.addModelChangedListener” and capture finished transactions (event.isTransactionFinished). Those diagram transactions are further sent to our server over the network for processing.
On dragging and dropping a node from the diagram palette on the diagram, we randomly receive a large number of transaction changes under “ExternalCopy” transaction. Even though the only action performed is adding a node to the diagram from the palette, all the nodes are in the included transaction changes, and that too 3 or 4 times for each node. This does not happen every time - happens rarely. In usual cases, we receive only a few transaction changes which are expected.
This unusual case results in an inefficient and very large payload for the request which we sent to the server. We are looking for a way to ignore those unnecessary transaction changes but could not find what causes the model to raise so many transaction changes.
Can you please help us identify action which might be causing the diagram to raise so many transaction changes? Also it would be helpful if can share more information about the “ExternalCopy” transaction, we could not find much information about it on the GoJS documentation.