2010-10-22 2 views
0

Я использую jQuery replaceWith для обновления информации о моем веб-сайте. Возвращаемые элементы Div небольшие. Функция вызывается через 5 минут. Когда я сосредотачиваюсь на браузере, функция replaceWith будет работать, но мой браузер не является гладким и когда-нибудь может сработать. Какой плагин или решение можно использовать для решения проблемы? я использовал:Браузер не является гладким при использовании jQuery «replaceWith»

$('#hotpost').hide().html(newHtml).fadeIn("slow"); 
$('#hotpost div.content').hide().replaceWith(newHtml).fadeIn("slow"); 
+2

Можем ли мы увидеть код? – alex

+0

Есть ли причина использовать несколько replaceWith() вместо html() для родительского элемента? –

+0

Я использовал: $ ('# hotpost'). Hide(). Html (newHtml) .fadeIn ("slow"); или $ ('# hotpost div.content'). hide(). replaceWith (newHtml) .fadeIn ("slow"); –

ответ

1

Я считаю, что вы должны скомпилировать HTML в фрагмент документа , используя, например, эту функцию

var compileHTML = function (html) { 
    var div = document.createElement("div"); 
    div.innerHTML = html; 
    var fragment = document.createDocumentFragment(); 
    while (div.firstChild) { 
     fragment.appendChild(div.firstChild); 
    } 
    return fragment 
}; 

перед добавлением вашего HTML в новый DIV так:

$('#hotpost').hide().html(compileHTML(newHtml)).fadeIn("slow"); 

Плюс я увидел, что в вашем коде вы используете setInterval, который при размытии окна может иметь неосмотрительность г поведения, вы могли бы использовать это:

(function loop(){ 
    //what you need to do 
    $('#hotpost').hide().html(compileHTML(newHtml)).fadeIn("slow"); //for example 
    setTimeout(loop, (18000)); 
})(); 

этот новый цикл будет ждать, пока код внутри не выполняется перед циклом снова, а не выполнение кода и («нет», говорит обозреватель, «пользователь использует память другая вкладка ") И когда вы возвращаетесь на свою страницу, одновременно происходит несколько анимаций ...

+1

Если вы используете метод 'append()', jQuery будет внутренне использовать фрагменты документа. –

+0

О да! Это правда ! Видя, как они улучшились, если единственными отличиями являются переменные запросы, я, вероятно, начну использовать это тогда :) – ornous

Смежные вопросы