recargar el contenido de div usando javascript

Estoy intentando recargar el contenido de div etiqueta al hacer clic en el botón. Puedo hacerlo usando:

function reload_div()
{   
    document.getElementById('div_id').innerHTML = 'blah blah blah';
}

pero el problema es que div La etiqueta contiene miles de líneas y cuando intento completar la recarga de div con la función anterior, el navegador se congelará. Estaba buscando una solución en stackoverflow, pero todo lo que encontré fue con el uso de ajax o jquery y no he usado esa biblioteca antes. Entonces, ¿puedo volver a cargar el contenido div usando solo javascript y html? Gracias.

preguntado el 27 de agosto de 11 a las 23:08

3 Respuestas

No estoy seguro de por qué querría cargar tanto contenido con javascript en primer lugar, pero siempre puede poner el javascript en un archivo externo para que el navegador pueda almacenarlo en caché. Eso debería ayudar si es el navegador que carga el script lo que está causando que la página se congele.

Siéntase libre de publicar más código y lo echaré un vistazo si eso no lo hace por usted.

Respondido 28 ago 11, 06:08

No se puede "actualizar" exactamente el contenido, no creo, nunca había oído hablar de eso. (sin embargo, no soy un experto) Sin embargo, he oído hablar de cambiar el contenido con javascript, intente algo con este enlace:

aquí está su botón y div con contenido:

<a href="divrefresh()">Refresh it!</a>
<div id="content"><p>Some Stuff!</p></div>

Aquí está el js subyacente, tiene una función que se usa arriba en el enlace.

function divrefresh() {
     document.getElementById('content').innerHTML = "Some new stuff!"
}

ETA: Vaya, veo el resto de tu publicación ahora. No estoy seguro de por qué eso congelaría el navegador. Prueba jQuery, es muy fácil de usar, por eso a todo el mundo le encanta. Si ha encontrado una solución de jQuery, ¡no dudaría en probarla! Publícalo y te puedo ayudar.

Si REALMENTE no desea usar jQuery o Ajax, creo que la única otra solución es poner las líneas en su propio documento HTML, tener un iframe y actualizar el iframe.

Respondido 28 ago 11, 04:08

document.getElementById toma una ID, no un selector de CSS que selecciona por ID. - icktoofay

Podrías intentar usar removeChild, en una variedad de formas (no estoy seguro de si el siguiente código congelaría el navegador o no, pero vale la pena intentarlo):

1)

function reload_div() {
    // Remove all child nodes from div first
    var div = document.getElementById('div_id');
    while (div.firstChild) {
        div.removeChild(div.firstChild);
    }

    document.getElementById('div_id').innerHTML = 'blah blah blah';
}

2)

function reload_div() {
    // Remove the div first
    var parent = document.getElementById('div_id').parentNode;
    parent.removeChild(document.getElementById('div_id'));

    // Recreate the div
    var div = document.createElement('div');
    div.setAttribute('id', 'div_id');

    // Append the div to the parent
    parent.appendChild(div);

    document.getElementById('div_id').innerHTML = 'blah blah blah';
}

Respondido 28 ago 11, 06:08

no, no me entendiste, quiero recargar el mismo contenido de div dentro del mismo div porque el usuario cambia su contenido y quiero volver a cargar el div para que se cancelen los cambios y el contenido sea el mismo que si actualizara toda la página. No necesito blah blah blah es solo un ejemplo. Gracias por tu ayuda de todos modos :) - Ing.Fouad

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.