Я использую socket.io для перевода данных в браузер, чтобы обновить статус других участников (например: онлайн/оффлайн/в режиме ожидания/занят).jQuery блокирующий сайт (данные socket.io)
Я нахожу, когда данные поступают (каждые 10 секунд) для обработки страницы зависает на мгновение. например: полоса прокрутки браузера (если вы перемещаете ее вверх/вниз) остановится на мгновение и будет не отвечать на запросы.
Я не считаю, что проблема связана с веб-сайтами, потому что, если я не обрабатываю данные (например, он все равно поступает в браузер), браузер не зависает. он зависает только при обработке данных.
ниже цикл я использую для обработки данных:
Я знаю, я мог бы лучше нацелить элементы, которые будут обновляться, а затем, используя общую находку (и я буду делать это), но я m все еще очень удивляет, что этот код заставляет сайт зависеть на мгновение при использовании.
Передано данных будет около 100 обновлений пользователей/состояний, поэтому я предполагаю, что он будет проходить через это около 100 раз и должен будет искать DOM 100 раз. Это причина, по которой он висит? Разве это не будет обрабатывать это в фоновом режиме?
Я предполагаю, что я пытаюсь понять, почему происходит повешение. Я много использовал Jquery и никогда не испытывал этого. Все советы/идеи были бы весьма признательны.
Thankyou
Возможно, это чрезвычайно длинные имена функций и классы/идентификаторы? – adeneo
Я знаю, что нет нормального, но я предпочитаю их. Раньше у них не было этой проблемы ... – Adam
Я просто шучу, длинные имена не имеют к этому никакого отношения, но это просто казалось излишним, используя такие длинные имена ... все! Разве вы не устали набирать их, и разве их просто не сложно запомнить? Вопрос в том, сколько там 'statusUpdates', вы меняете DOM в цикле, добавляете классы и атрибуты к нескольким элементам, а изменение DOM может повесить пользовательский интерфейс, если это делается рекурсивно. – adeneo