Класс DeleteArguments
имеет метод getDeleteProjectContents
, который даст вам это значение.
Получите DeleteArguments
, используя вызов getArguments()
для класса DeleteParticipant
, который расширяет ваш участник удаления.
Ваше лучшее решение было бы чем-то вроде этого:
var inactiveTimer;
var active = true;
function setTimer(){
inactiveTimer = setTimeOut("stopAjaxUpdateFunction()", 120000); //120 seconds
}
setTimer();
document.onmouseover = function() { clearTimeout ( inactiveTimer );
setTimer();
resumeAjaxUpdate();
}; //clear the timer and reset it.
function stopAjaxUpdateFunction(){
//Turn off AJAX update
active = false;
}
function resumeAjaxUpdate(){
if(active == false){
//Turn on AJAX update
active = true;
}else{
//do nothing since we are still active and the AJAX update is still on.
}
}
stopAjaxUpdateFunction должен остановить прогресс обновления Ajax.
Я посмотрел на ту проблему прежде для исследовательского проекта. В то время (2-3 года назад) я не нашел способ получить информацию от браузера о том, минимизированы ли Вы :(
Как насчет того, чтобы установить "тайм-аут неактивности", который сбрасывается каждый раз, событие от нажатия мыши или событие клавиатуры получены в DOM? Я полагаю, что это - то, как большинство программ IM решает, что Вы отсутствуете (хотя они делают это путем сцепления входных сигналов на уровне в масштабе всей системы),
Сначала проверьте, когда окно потеряет и получит фокус.
window.onblur = function () { /* stop */ };
window.onfocus = function () { /* start */ };
Кроме того, по различным причинам пользователь может прекратить читать страницу, не заставляя это потерять фокус (например, он встает и убегает от компьютера). В этом случае необходимо принять после периода неактивности (никакие события от нажатия мыши или события клавиатуры), что внимание пользователей оставило страницу. Код, чтобы сделать, который описан в другом ответе.
Можно прислушаться к mousemove и событиям нажатия клавиши. Если один из тех был уволен в прошлое X секунд, то продолжает Ваше обновление. Иначе не обновлять.
Это не прекрасно, но я думаю, что лучше, чтобы можно было сделать с чистым JS.
Если Вы хотите рисковать в мир Flash, Silverlight или Java, Вы можете получать больше информации от браузера.
Я знаю, что вы уже приняли ответ, но лично я бы использовал комбинацию нескольких ответов, упомянутых здесь по разным причинам, в том числе:
Я, скорее всего, использовал бы что-то вроде следующего в качестве руководства:
var idleTimer, userIsIdle, pollingTimer;
document.onkeydown = document.onmousemove = resetTimer;
window.onload = function () {
pollingTimer = window.setTimeout(runPollingFunction, 30000);
resetTimer();
/* IE's onblur/onfocus is buggy */
if (window.navigator.appName == "Microsoft Internet Explorer")
document.onfocusin = resetTimer,
document.onfocusout = setIdle;
else
window.onfocus = resetTimer,
window.onblur = setIdle;
}
function resetTimer() {
if (userIsIdle)
setBack();
window.clearTimeout(idleTimer);
idleTimer = window.setTimeout(setIdle, 120000); // 2 minutes of no activity
}
function setIdle() {
userIsIdle = true;
window.clearTimeout(pollingTimer); // Clear the timer that initiates polling
window.clearTimeout(setIdle);
}
function setBack() {
userIsIdle = false;
runPollingFunction(); // call the polling function to instantly update page
pollingTimer = window.setTimeout(runPollingFunction, 300000);
}