У меня есть страница, которая автоматически обновляет контент через Ajax. Я хочу, чтобы это было незаметно, поэтому я не хочу отображать мой загрузочный GIF во время автоматического обновления страницы. Поэтому я сделал что-то подобное с моей функцией getPosts (ненужный код вырезан для краткости)
function getPosts(image)
{
//loading icon while getPosts
if (image)
{
$("#postcontainer").bind("ajaxStart", function(){
$(this).html("<center><img src='ajax-loader.gif' /></center>");
});
} //... ajax call, etc. don't worry about syntax errors, they aren't in real code
Я знаю, что центральная метка устарела, просто бесстыдный ярлык.
И тогда я установлю интервал как setInterval(function() { getPosts(false); }, 10000);
Поэтому мои автоматические вызовы не приведут к отображению изображения
Все мои обновления вручную будут называться так getPosts(true);
Вы можете (вероятно) увидеть ошибку в действии на моем личном сайте
Проблема в том, что функция setInterval, похоже, использует образ bool из последнего вызова функции. Таким образом, он не отображает изображение сначала во время автоматических вызовов, но после того, как я нажму ручное обновление, он начнет показывать изображение во время каждого вызова.
Как с этим бороться?
Спасибо всем, кто просматривает / публикует эту тему! Я надеюсь, что этот вопрос станет хорошей ссылкой для других.