Ответы пользователя по тегу jQuery
  • Почему не добавляет класс?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    Ваш код:
    // setup autocomplete function pulling from currencies[] array
      $('#autocomplete').autocomplete({
        lookup: currencies,
        onSelect: function (suggestion) {
        	console.log(suggestion);
          var top = $('#'+ suggestion.data).offset().top - 10;
          $('html,body').stop().animate({scrollTop: top}, 500);
          $('#autocomplete').val('');
    
          var scroll = $(window).scrollTop();
          if (scroll) {
              $("#"+ suggestion.data).addClass("active");
              setTimeout(function() {
                $("#"+ suggestion.data).removeClass("active");
              }, 7000);
    
          }
        }
      });

    В чём сакральный смысл получения значения $(window).scrollTop() и условия, основанного на этом значении? Не работает из-за этого.
    А вот это "через раз" - работает только когда у вас страница хоть сколько нибудь проскроллена (больше чем на 0 пикселей)
    Ответ написан
  • Где и как правильно хранить javascript и jquery?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    Недавно был вопрос: Как правильно хранить javascript?
    В общем, всё правильно, но скрипты типа jquery лучше тянуть из общедоступных CDN (большая вероятность что он уже закэширован у клиента), ну и сжимать и конкатенировать скрипты (и стили) для отдачи клиенту.
    Ответ написан
  • Как правильно хранить javascript?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    Отказываться не нужно, в наше-то время. Несколько общих рекомендаций:
    • В head'е могут быть только самые необходимые скрипты, которым это нужно. Например, аналитика, счётчики, возможно что и jquery (просто по привычке его всегда в head'е прописываю)
    • Остальные скрипты нужно убирать в самый конец страницы.
    • Скрипты, как и стили, кстати, для ускорения загрузки надо сжимать и сливать в один файл
    Ответ написан
  • Серверный таймер на jQuery?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    Какая точность нужна?
    Вообще, вижу 3 способа:
    - от стартующего уходит запрос на сервер, в БД или куда-нибудь ещё ставится флаг "отсчёт начат". Те самые 10к клиентов периодически, раз в секунду к примеру, делают ajax-запрос на сервер и узнают, начался отсчёт или нет. Точность зависит от периодичности запросов + сетевые лаги. Особых требований к софту в этом случае нету, но должен быть хорошо настроен сам вебсервер, чтобы выдерживать такой поток запросов, пусть и очень лёгких.
    - вебсокеты. Все ваши 10к клиентов имеют постоянное соединение с сервером, один из них по сокету посылает серверу сигнал "отсчёт начат", сервер сразу же рассылает его всем остальным. Тут уже надо настраивать демона, к которому собственно 10к клиентов и будут присоединены и который будет принимать и рассылать им сообщения. Точность зависит чисто от сети.
    - есть еще dklab_realplexor от Котерова. Используются long polling-запросы, эдакие "вебсокеты для бедных", но вообще работает решение это неплохо. Сам использовал на продакшне, но на очень маленьких нагрузках, а вот tjournal.ru его использует для организации онлайн-трансляций, и там нагрузки значительно больше.
    Ответ написан
  • Как реализовать управление курсором мыши с сервера?

    Assargin
    @Assargin
    Перед ответом смотрю наличие ✔ в ваших вопросах
    Если вопрос касается именно курсора мыши, то да, никак (без системного доп.софта), если же суть в просмотре действий пользователя и управлении страницей, то извратиться можно. Навскидку: просмотр реализуется, как в Яндекс.Метрике, управление теоретически можно реализовать посредством вебсокетов, отправляя странице инструкции куда нажать (click()), поместить фокус в поле ввода (focus()), задание значений полям ввода (кроме, наверно, поля пароля)
    Ответ написан