Перейти к содержимому

MOAB

- - - - -

Как сделать обновление div через некоторое время?


  • Войдите, чтобы ответить
Сообщений в теме: 11

#1 madcap

madcap

    Мастер

  • Старая гвардия
  • PipPipPipPip
  • 879 сообщений
800
  • ИзМосквы

Отправлено 26 Июль 2019 - 10:50

Уважаемые знатоки, кто силён в js!

Если кратко:
Есть div'ы, и в них исполняется js при загрузке сайта у юзеров.
Как сделать так, чтобы происходил Refresh содержимого в этих div'ах через каждые 31 секунду с бесконечным циклом?

p.s. Загрузку файла php в слой не предлагайте (как это предлагают везде), так как таких файликов нужно будет сделать много.

#2 Матумба

Матумба

    во имя матана

  • Участник
  • PipPipPipPipPip
  • 5 126 сообщений
6 461
  • ИзКрии

Отправлено 26 Июль 2019 - 10:58

jquery есть? или чистоганом?
и что значит рефреш содержимого? - js надо тоже исполнить по новой?
"Они не могут ничего, у них лапки котят"

#3 madcap

madcap

    Мастер

  • Старая гвардия
  • PipPipPipPip
  • 879 сообщений
800
  • ИзМосквы

TC Отправлено 26 Июль 2019 - 11:12

jquery есть.
Смысл именно в том, чтобы заново и заново исполнялся код js внутри слоя.
Кол-во показов хочу таким способом слегка увеличить.
По правилам это делать можно, но не чаще 1 раза в 30 секунд. (по крайней мере в текущей версии правил)

#4 protector

protector

    Почетный

  • Основатель
  • PipPipPipPipPip
  • 3 216 сообщений
1 779
  • ИзСанкт-Петербурга

Отправлено 26 Июль 2019 - 12:13

madcap, не подойдет?
forever (id) {
Тут нужный код
setTimeout (forever,31000)
}


#5 Матумба

Матумба

    во имя матана

  • Участник
  • PipPipPipPipPip
  • 5 126 сообщений
6 461
  • ИзКрии

Отправлено 26 Июль 2019 - 12:22

Без точных данных может быть множество вариантов, в том числе и невозможный. Вот код, (не тестил, но близко к финальному), который перегружает страницу в фоне и меняет нужные блоки. А вот при обработке полученного кода там то ли весь js заново обрабытывается, то ли только во вставляемом блоке, не помню точно.
$(document).ready(function() {
	window.setInterval(function() {
		var req = $.post(window.location.href).done(function(data) {
			var h = $(data).find("#div").html();
			$("#div").html(h);
		});
	});
}, 31000);


"Они не могут ничего, у них лапки котят"

#6 madcap

madcap

    Мастер

  • Старая гвардия
  • PipPipPipPip
  • 879 сообщений
800
  • ИзМосквы

TC Отправлено 26 Июль 2019 - 12:59

Цитата

$("#div").html(h)
Так все блоки мигают на экране с задержкой полсекунды, но содержимое их не обновляется.

#7 Матумба

Матумба

    во имя матана

  • Участник
  • PipPipPipPipPip
  • 5 126 сообщений
6 461
  • ИзКрии

Отправлено 26 Июль 2019 - 13:02

Просмотр сообщенияmadcap (26 Июль 2019 - 12:59) писал:

Так все блоки мигают на экране с задержкой полсекунды, но содержимое их не обновляется.
Раз мигают - значит обновляются :) Нужна конкретика, в общем.
"Они не могут ничего, у них лапки котят"

#8 protector

protector

    Почетный

  • Основатель
  • PipPipPipPipPip
  • 3 216 сообщений
1 779
  • ИзСанкт-Петербурга

Отправлено 26 Июль 2019 - 17:28

Просмотр сообщенияmadcap (26 Июль 2019 - 12:59) писал:

Так все блоки мигают на экране с задержкой полсекунды, но содержимое их не обновляется.
Задайте id у данного блока и вставьте его в скрипт.

#9 Valek

Valek

    ВСтатусе

  • Активный участник
  • PipPipPipPip
  • 1 413 сообщений
2 029
  • ИзРоссии :(

Отправлено 26 Июль 2019 - 19:53

Просмотр сообщенияМатумба сказал:

$(document).ready(function() {
		window.setInterval(function() {
				var req = $.post(window.location.href).done(function(data) {
						var h = $(data).find("#div").html();
						$("#div").html(h);
				});
		});
}, 31000);
ошибка. дилей не в том месте стоит

попробовать так
setInterval(function() {
    $.post(window.location.href, function(data) {
        var h = $(data).find('#id');
        $('#id').html(h);
    }, "html");
},31000)
#id это id нужного блока
Отличный хостинг низкие цены, высокое качество и SSL Ссылка на сайт

#10 protector

protector

    Почетный

  • Основатель
  • PipPipPipPipPip
  • 3 216 сообщений
1 779
  • ИзСанкт-Петербурга

Отправлено 26 Июль 2019 - 21:00

Просмотр сообщенияValek (26 Июль 2019 - 19:53) писал:

попробовать так
setInterval(function() {
	$.post(window.location.href, function(data) {
		var h = $(data).find('#id');
		$('#id').html(h);
	}, "html");
},31000)
#id это id нужного блока
Только это нужно в замкнутый цикл поместить, так как выполняться должно бесконечно количество раз.

#11 Матумба

Матумба

    во имя матана

  • Участник
  • PipPipPipPipPip
  • 5 126 сообщений
6 461
  • ИзКрии

Отправлено 27 Июль 2019 - 01:25

Просмотр сообщенияprotector сказал:

Только это нужно в замкнутый цикл поместить, так как выполняться должно бесконечно количество раз.
Бесконечный цикл сделает из браузера нагреватель. setInterval(func, time_ms) делает как раз то, что нужно.

Просмотр сообщенияValek сказал:

ошибка. дилей не в том месте стоит
Вот-вот! Адис, твой выход!
"Они не могут ничего, у них лапки котят"

#12 madcap

madcap

    Мастер

  • Старая гвардия
  • PipPipPipPip
  • 879 сообщений
800
  • ИзМосквы

TC Отправлено 27 Июль 2019 - 17:46

Просмотр сообщенияValek (26 Июль 2019 - 19:53) писал:

попробовать так
setInterval(function() {
	$.post(window.location.href, function(data) {
		var h = $(data).find('#id');
		$('#id').html(h);
	}, "html");
},31000)
#id это id нужного блока

Вот это реально работает!!! ротация объявлений идёт постоянно каждые 31 сек.
Спасибо всем, кто искал решение, и особенно тем, кто его нашёл!



Похожие темы


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных



© 2019 SMO&SEO форум «WEBIMHO» — продвижение и создание сайтов, интернет-маркетинг

По вопросам рекламы на форуме и цены на рекламу
Все материалы SEO форума разрешены к копированию только с установкой гиперактивной ссылки на webimho.ru,
тем, кто этого не сделает, мы оторвем руки и ноги и поменяем местами,
а когда выйдем из тюрьмы, опять оторвем и опять поменяем.


Россия, г. Москва

Мы в соцсетях: twitter | вконтакте | facebook | livejournal