JQuery на экране запустить за кадром пауза - PullRequest
3 голосов
/ 02 мая 2011

Есть ли способ приостановить длинный скрипт опроса, когда кто-то оставляет страницу, но не просматривает ее?Так что, если у меня открыто несколько вкладок или окон приложения, только активная просматриваемая сценарий запускает активный длинный опросный скрипт?

Ответы [ 3 ]

1 голос
/ 02 мая 2011

На самом деле нет эффективного способа приостановить скрипт в javascript. Но позвольте мне предложить один:

function pausecomp(millis){

    var date = new Date();
    var curDate = null;

    do{ 
        curDate = new Date();
    }while(curDate-date < millis);
} 

Так что это приостановит весь скрипт на несколько миллисекунд. Однако это не очень хорошая практика.

Javascript позволяет настроить события, которые происходят после задержки:

setTimeout("alert('hello')",1250);

Таким образом, когда эта строка кода достигнута, метод setTimeout вызывает оповещение при прохождении 1250 миллисекунд.

Надеюсь, эта информация поможет вам;)


Чтобы определить, когда мышь покидает окно, я настроил для вас jsfiddle: http://jsfiddle.net/xPAwu/1/

Кроме того, на самом деле есть несколько вопросов по этому вопросу: Как я могу определить, когда мышь покидает окно?

Событие Javascript, когда мышь покидает окно браузера

0 голосов
/ 02 мая 2011

Вы могли видеть, сколько времени страница простаивает:

<script>
   $(document).ready(function(){
      var lastEventTime = null;
      //Detect a user interaction
      $(document).bind("mousemove keyup mousewheel", function(event){
         lastEventTime = new Date(); //Store last event time
      });
      setInterval(function(){
         var currentTime = new Date();
         var idleSeconds = (currentTime.getTime() - lastEventTime.getTime())/1000;
         if( idleSeconds > 60) return; //If more than 60 seconds idle, stop polling
         pollingScript(); //Here goes your script
      }, 1000);
   });
</script>

То, что мы делаем, это захват, когда происходит взаимодействие с пользователем (переместите мышь или нажмите клавишу).Если это не происходило долгое время (в этом примере - 60 секунд), мы прекращаем выполнение сценария опроса.

Надеюсь, это поможет

0 голосов
/ 02 мая 2011

Сложность здесь заключается в том, чтобы знать, действительно ли пользователь простаивает или нет. Я использовал этот плагин idleTimer в прошлом, и он, похоже, работал довольно хорошо. Автор использует комбинацию событий (нажатие клавиши мыши и т. Д.), Чтобы определить, активен ли пользователь или нет.

...