2012-04-12 15 views
2

Wie kann ich die Seite alle 30 Sekunden automatisch nach Hause bringen?automatisch alle 30 Sekunden nach Hause zurückkehren

Ich entwerfe eine Website, die in der Lobby eines Krankenhauses angezeigt wird, diese Website auf einem Touchscreen für allgemeine Informationen. Wir müssen automatisch zur Startseite zurückkehren, nachdem eine Person sie nicht mehr benutzt.

+1

Wie wollen Sie die 'Leerlauf' Zeit zu definieren? Messen Sie Tasten drücken, Seitenlasten, Maus/Cursor Bewegungen ..? –

+1

Was passiert, wenn ein Benutzer länger als 30 Sekunden braucht, um etwas auf der Seite zu lesen? Schade, von vorne anfangen? – Sparky

Antwort

4

Schauen Sie sich diese nette jQuery idletimer Plugin von Paul Irish und die demo here

Grundsätzlich wird es eine Rückruffunktion nach bestimmten Leerlaufzeit auslösen und in dessen Inneren können Sie es zurück zur Homepage weiterleiten.

Verbrauch:

// idleTimer() takes an optional argument that defines the idle timeout 
// timeout is in milliseconds; defaults to 30000 
$.idleTimer(10000); 

$(document).bind("idle.idleTimer", function(){ 
// function you want to fire when the user goes idle 
});  

$(document).bind("active.idleTimer", function(){ 
// function you want to fire when the user becomes active again 
}); 

// pass the string 'destroy' to stop the timer 
$.idleTimer('destroy'); 

Bitte beachten Sie das Ereignis behandelt: 'mousemove- keydown DOMMouseScroll Mausrad mousedown- Berührungsstartberührungsbewegungs' From source code

-1

Sie können dies auch tun, nur mit dem HTML-Markup die refresh meta tag verwenden und vermeiden unter Verwendung von Javascript alle zusammen:

<meta HTTP-EQUIV="REFRESH" content="30; url=http://www.yourdomain.com/"> 

Dies als bedeutet, dass jede Aktion, die der Benutzer ausführt, von der aktuellen Seite zu einer neuen Seite führt. Wenn dies der Fall ist, wird der Browser, wenn er dies dem Kopf jeder Seite hinzufügt, immer dann zum Index zurückkehren, wenn der Benutzer nicht in weniger als 30 Sekunden zu einer anderen Seite navigiert.

+0

Dann, nach 30 Sekunden (selbst wenn jemand noch den Kiosk benutzt), wirft er sie zurück nach Hause. – Sparky

+0

@ Sparky672, hängt davon ab, wie die Kiosk-Anwendung entworfen wird. Wenn es einen Touchscreen verwendet, erfasst es wahrscheinlich nur Klicks und solche Kioske werden häufig aus statischen HTML-Dateien erstellt. In diesem Senario würde diese Technik gut funktionieren. Sie haben recht, wenn es In-Page-Interaktionen gibt, wäre eine JavaScript-Lösung erforderlich. – Prestaul

+0

Ich würde es lieben, wenn Leute erklären könnten, warum sie diese Antwort abstimmen. Es nimmt nichts an, aber bietet eine legitime Lösung für einige Szenarien, in denen ich glaube, dass Javascript nicht die beste Antwort ist. – Prestaul

-1

ich verwendet habe sowohl eine Meta-Refresh

<meta http-equiv="REFRESH" content="30;url=http://www.the-domain.com">

und eine verzögerte window.location

window.setTimeout("location='http://www.the-domain.com'",30000);

dies zu tun.

+0

-1: Vermeiden Sie die Verwendung von string eval (einschließlich in 'setTimeout'); Verwenden Sie stattdessen eine anonyme Funktion. –

0

Wenn es ein Touchscreen, klickt gerade genug, um Leerlaufzeit zu brechen, so

var idle, isIdle; 
function createIdle() { 
idle = window.setTimeout("alert('hey where are you?')",5000); 
} 

$("*").click(function(){ 
    clearTimeout(idle); 
    createIdle(); 
}); 
createIdle();​ 

http://jsfiddle.net/ocanal/CEEuA/1/

Verwandte Themen