¿Cuándo se debe usar .innerHTML y cuando document.write en JavaScript?

¿Hay una regla general, cuando uno debe usardocument.write para cambiar el contenido del sitio web y cuándo usar.innerHTML?

Hasta ahora mis reglas eran:

1) Utilizardocument.write cuandoañadiendo nuevo contenido

2) Utilizar.innerHTML cuandocambiando contenido existente

Pero me confundí, ya que alguien me dijo que por un lado.innerHTML es un extraño estándar de Microsoft, pero por otro lado leí esodocument.write No está permitido en XHTML.

¿Qué estructuras debo usar para manipular mi código fuente con JavaScript?

Respuestas a la pregunta(3)

Su respuesta a la pregunta