}
}
public void afterRenderAndSendMutationCode(MutationEvent mutEvent)
{
ItsNatStfulDocumentImpl itsNatDoc = clientDoc.getItsNatStfulDocument();
String type = mutEvent.getType();
if (clientDoc.isNodeCacheEnabled() &&
( !itsNatDoc.isLoadingPhaseAndFastLoadMode() || itsNatDoc.isDebugMode()) &&
type.equals("DOMNodeRemoved"))
{
// Esto lo hacemos s� o s� pues tenemos que eliminar del cach�
// en el servidor los nodos removidos, aunque el cliente no se entere (send code disabled)
// al menos evitamos memory leaks en el servidor (y evitamos fallos al clonar
// la cach� inicialmente para un cliente control remoto)
// Ha de llamarse lo �ltimo porque para eliminar el nodo en el cliente es m�s r�pido
// usar la cach� y aunque el nodo haya sido eliminado ya en el cliente
// (porque ya se ha enviado el c�digo de eliminaci�n) el registro de la cach�
// permanece, pues aunque el elemento cliente eliminado y el id no vuelven a reutilizarse
// evitamos que la memoria crezca indefinidamente en cliente y servidor.
// En carga y fast load en teor�a no es necesario porque si es as� es que estamos programando mal
// pues si estamos eliminando un nodo que fue cacheado como no se genera c�digo JavaScript
// de las mutaciones significa que en el cliente cuando se vaya a cachear el nodo dicho nodo NO estar�
// en el �rbol. Si fue cacheado es que se uso para algo o se cambi� algo, porque la simple inserci�n
// no cachea. Por eso nos interesa hacerlo en este caso cuando tenemos el modo debug con la �nica
// finalidad de detectar errores en tiempo de desarrollo no por otra rz�n.
Node removedNode = (Node)mutEvent.getTarget();
removeTreeFromNodeCache(removedNode);
}
if (type.equals("DOMNodeInserted") &&
!itsNatDoc.isLoadingPhaseAndFastLoadMode())
{
Node insertedNode = (Node)mutEvent.getTarget();
processTreeInsertedElementDocContainer(false,insertedNode);
}
}