Функция Javascript работает правильно 8 раз, затем каждый раз

У меня есть функция javascript, которую я пытаюсь добавить в мой документ, чтобы дать ему возможность обновляться в режиме реального времени. Это вызов AJAX для моего MVC-контроллера, который возвращает результат JSON и добавляет его в список вверху, а затем скрывает последнее li, а затем удаляет последний li.

Проблема в том, что функция работает безупречно 8 раз, а затем идет вяло. После первых 8 раз функция только скрывает последний элемент в списке, каждый раз добавляет его к вершине. Таким образом, после первых 8 запусков мой список растет на 1 ли за другой запуск скрипта:

Вот моя функция:

<script type="text/javascript">
    $(document).ready(function() {
        function latestBranch() {
            $.getJSON("Home/LatestWristband", null, function (html) {
                var showHideSpeed = 200;
                var firstLI = $("#recentBranches ul li").first();
                if (firstLI.text() !== html) {
                    firstLI.before('
  • ' + html + '<\li>'); $("#recentBranches ul li").first().hide().show(showHideSpeed); $("#recentBranches ul li").last().hide(showHideSpeed/4, function() { $("#recentBranches ul li").last().remove(); }); } }); }; setInterval(latestBranch, 500); }); </script>

    Я попробовал несколько вещей, чтобы заставить это работать. Моя первая мысль заключается в том, что интервал был быстрее, чем скрипт избавлялся от последнего элемента списка, но я тестировал его с интервалом 5000 для get и 1000 для скрытия/отображения элементов, которые должны обеспечивать дополнительно 3000 мс, по крайней мере, до следующего вызова. Я также попытался изменить это:

    $("#recentBranches ul li").last().hide(showHideSpeed/4,
                            function() {
                                $("#recentBranches ul li").last().remove();
                            });
    

    чтобы:

    $("#recentBranches ul li").last().remove();
    

    однако я получаю такую ​​же проблему после 8 раз. Кажется, что после того, как он попадает в этот ритм, который работает только каждый раз, он сохраняет его неопределенно. Я пробовал смотреть aroudn, но я не могу найти ничего, что могло бы объяснить эти симптомы ...

  • 3
    Кто-то предположил, что я использую setTimeout вместо этого с рекурсивным вариантом функции, вызывающей себя после завершения, с задержкой. Я попробовал это, но имею ту же проблему. Я очистил кеш браузера и проверил, что сценарий в браузере тот, который я только что изменил.
    добавлено автор tostringtheory, источник

    1 ответы

    Вы используете неправильную косую черту, чтобы закрыть

  • , что означает, что вы фактически добавляете 2
    • s за запрос. (Второй пустой)

      измените эту строку:

      firstLI.before('
    • ' + html + '<\li>');

      к этому:

      firstLI.before('
    • ' + html + '
    • ');
      
  • 3
    добавлено
    ОТЛИЧНО! Глупая ошибка, следовало поймать его. Я предполагаю, что причина, по которой я этого не делал, - это потому, что она работала 8 раз раньше, чем каждый другой. Я мог понять, что в 8 раз правильнее, поскольку в списке изначально 7 элементов, поэтому, когда он удаляет 7-й, это было тогда неверно. Однако вы можете объяснить, почему он работал в другое время? Если он удалил только 7, а затем продолжал добавлять, но никогда не удалял, я мог бы это понять. Я нахожу это действительно странным и интересным!
    добавлено автор tostringtheory, источник
    Ах, извините, я не видел 2 ли на запрос! Я отметил ваш ответ правильно, хотя и поднял его! Спасибо.
    добавлено автор tostringtheory, источник
    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 участник(ов)

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

    Чат — Типичный Верстальщик
    Чат — Типичный Верстальщик
    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