setInterval('checkimage()',"> setInterval('checkimage()',"> setInterval('checkimage()'," />

Невозможно загрузить изображение каждые 5 секунд.

Я использую сценарий ниже, чтобы проверить подключение к Интернету, загрузив изображение test.png. Проблема, с которой я сталкиваюсь, заключается в том, что она будет загружать только один раз. Это означает, что если при первой загрузке страницы было подключено к Интернету, на дисплее отобразится «Интернет», однако, если я отключу сетевой кабель, он не скажет «Оффлайн», как и должно быть.

В принципе, после загрузки readyState всегда будет « complete ». Однако я хотел бы снова и снова выполнять тест.

<script type="text/javascript">
setInterval('checkimage()', 1000);

function checkimage() {
    var imgTmp = new Image();
    imgTmp.src = 'test.png';
    if (imgTmp.readyState == 'complete') {
        document.getElementById('div1').innerHTML = "Online";
    } else {
        document.getElementById('div1').innerHTML = "Offline";
    }
}
</script>

Любая помощь будет принята с благодарностью!

0
Он должен быть setInterval ('checkimage', 1000); без круглых скобок
добавлено автор asifsid88, источник
@Andreas ooops !! моя вина. Я тоже пропустил цитаты. ПРАВДА! даже кавычки не должны быть там, поскольку мы просто передаем указатель
добавлено автор asifsid88, источник
@ asifsid88 Нет, ты ошибаешься. Либо как строка с парантесом (неправильный и неправильный путь) setInterval ("checkimage ()", 1000) или сама функция без paranthesis и кавычек setInterval (checkimage, 1000) (правильный путь)
добавлено автор Andreas, источник

2 ответы

Я сомневаюсь во всем решении, но если вы хотите принудительно загрузить, то это позволит избежать кеша, вы можете заменить

imgTmp.src = 'test.png';

с

imgTmp.src = 'test.png?t='+(new Date().getTime());
2
добавлено
Ху? Какой у вас сервер? Разве он не может получить файл, когда есть пареметры?
добавлено автор Denys Séguret, источник
Я перечитал ваш первый комментарий: у вас есть опечатка (цитаты). Скопируйте мой код.
добавлено автор Denys Séguret, источник
@EliUnger: ? вводит строку запроса. Это не часть имени файла на диске.
добавлено автор Lightness Races in Orbit, источник
Я попробовал ваше решение. Он всегда будет говорить офлайн - потому что файл «test.png? T =» + (новая дата (). GetTime ()); не существует.
добавлено автор Homie, источник
Я знаю. -_- но факт - это не сработает. : /
добавлено автор Homie, источник

Проблема с вашим решением заключается в том, что вы проверяете ReadyState сразу после установки источника. Вместо этого используйте load и error .

function checkimage() {
    var imgTmp = new Image();
    imgTmp.onload = function() {
        printState("Online");
    };
    imgTmp.onerror = function() {
        printState("Offline");
    };
    imgTmp.src = "test.png?_=" + (+new Date());
}

function printState(state) {
    document.getElementById("div1").innerHTML = "" + state + "";
    setTimeout(checkimage, 5000);
}

And don't use strings as first parameter for setTimeout and setInterval

1
добавлено
JavaScript Jobs — чат
JavaScript Jobs — чат
8 336 участник(ов)

JavaScript Jobs — чат для поиска работы и людей Правила оформления: https://teletype.in/@telegram-ru/r1WQe5F1m См. также: @mobile_jobs, @devops_jobs, @nodejs_jobs, @react_js, @angular_ru, @js_ru

JavaScript.ru
JavaScript.ru
7 932 участник(ов)

Сообщество сайта JavaScript.ru в Slack.

pro.js
pro.js
4 675 участник(ов)

Про JavaScript и NodeJS Invite: https://t.me/joinchat/Be4rsT5Rsgq30DHutjxXgA Правила: http://telegra.ph/ru-chat-rules-06-19 Вакансии только с ЗП, не чаще раза в неделю.

Верстка сайтов HTML/CSS/JS/PHP
Верстка сайтов HTML/CSS/JS/PHP
3 439 участник(ов)

Правила группы: напишите !rules в чате. Группа Вк: vk.com/web_structure Freelancer: @web_fl Веб Дизайн: @dev_design Маркетолог: @topmarkening Автор: @M_Boroda

JavaScript — русскоговорящее сообщество
JavaScript — русскоговорящее сообщество
3 269 участник(ов)

Рекомендуем сразу отключить уведомления Правила: https://rudevs.network/ByaMH6un7 См. также: @js_noobs_ru, @nodejs_ru, @typescript_ru, @react_js, @electron_ru Вакансии и поиск работы: @javascript_jobs

JavaScript Noobs — сообщество новичков
JavaScript Noobs — сообщество новичков
2 484 участник(ов)

Чат для новичков

CSS — русскоговорящее сообщество
CSS — русскоговорящее сообщество
1 502 участник(ов)

Сообщество любителей CSS Возникли проблемы с CSS? – пиши сюда, обсудим и предложим самое лучшее решение Работа: @css_ru_jobs Правила: https://teletype.in/@css_ru/r1EWtQ2w7 Приходите в наши чаты @javascript_ru и @frontend_ru Флуд: @css_flood

Чат — Типичный Верстальщик
Чат — Типичный Верстальщик
1 080 участник(ов)

Основной канал: @tpverstak Обратная связь: @annblok Все ссылки на соц.сети проекта: http://taplink.cc/tpverstak ПРАВИЛА ЧАТА — https://teletype.in/@annblok/BygPgC3E7

javascript_ru
javascript_ru
915 участник(ов)

Сообщество любителей самого популярного языка программирования в мире. Чат основан в 2009 году. Логи: https://goo.gl/9EOeM7 Поддержка бота: @chat_linker (ссылка на репу внутри) Вам будут интересны @frontend_ru и @css_ru

jsChat
jsChat
603 участник(ов)

Чат посвященный программированию на языке javaScript Перед отправкой ссылки на Ваш контент посоветуйтесь с админом Все ссылки удаляются ботом автоматически

JavaScript for Zombies Chat
JavaScript for Zombies Chat
492 участник(ов)

Чат про JavaScript для настоящих zombie! Вход строго по приглашениям! Ссылка для строгих приглашений: https://t.me/joinchat/AAMBHz3Uyr0tuZ7VaB029g

All That JS
All That JS
417 участник(ов)

JS на русском

Веб-Технологи: UI/UX, Вёрстка, Фронтенд
Веб-Технологи: UI/UX, Вёрстка, Фронтенд
167 участник(ов)

Всё про веб-дизайн и вёрстку. А также: HTML, CSS, флекс и бутстрапы, шаблонизаторы, препроцессоры, методологии, аглифаеры, улучшаторы и обфускаторы. Обсуждаем темы юзабилити, устраиваем А/В тесты лендингов, и проводим аудит.

DTP :: @DTPublish
DTP :: @DTPublish
147 участник(ов)

Обсуждаемые темы: полиграфия, препресс, верстка, дизайн, иллюстрации, скрипты, плагины. Канал - @DTPublishing

css_jobs
css_jobs
26 участник(ов)

Чат для вопросов по css и html: @css_ru Флуд: @css_flood Канал с вакансиями и резюме: @css_jobs_feed

css_флуд
css_флуд
10 участник(ов)