перезагрузите содержимое div, используя JavaScript - PullRequest
1 голос
/ 28 августа 2011

Я пытаюсь перезагрузить содержимое тега div при нажатии кнопки.Я могу сделать это с помощью:

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

, но проблема в том, что тег div содержит тысячи строк, и когда я пытаюсь выполнить div-перезагрузку с предыдущей функцией, браузер зависает.Я искал решение для stackoverflow, но все, что я нашел, это с помощью ajax или jquery, и я раньше не использовал эту библиотеку.Итак, я могу перезагрузить содержимое div, используя только javascript и html?Спасибо.

Ответы [ 3 ]

1 голос
/ 28 августа 2011

Я не уверен, почему вы хотите загружать столько контента с помощью javascript, но вы всегда можете поместить javascript во внешний файл, чтобы браузер мог его кэшировать. Это должно помочь, если браузер загружает скрипт, который вызывает зависание страницы.

Не стесняйтесь размещать больше кода, и я посмотрю, не поможет ли это вам.

0 голосов
/ 28 августа 2011

Вы можете попробовать использовать removeChild различными способами (я не уверен, заморозит ли следующий код браузер или нет, но стоит попробовать):

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';
}
0 голосов
/ 28 августа 2011

Вы не можете точно "обновить" контент, который я не думаю, я никогда не слышал об этом.(впрочем, я не эксперт) Однако я слышал о переключении контента с помощью javascript, попробуйте что-нибудь связать так:

вот ваша кнопка и div с контентом:

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

Вот базовый js, у вас есть функция, которая используется выше в ссылке.

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

ETA: Ой, теперь я вижу остальную часть вашего поста.Я не уверен, почему это заморозило бы браузер.Попробуйте jQuery, он действительно прост в использовании, поэтому всем это нравится.Если вы нашли решение для jQuery, я без колебаний опробую его!Опубликуйте его, и я могу вам помочь.

Если вы ДЕЙСТВИТЕЛЬНО не хотите использовать jQuery или Ajax, то я думаю, что единственное другое решение - поместить строки в их собственный HTML-документ, иметь iframe иобновите фрейм.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...