Adobe Flash Professional Version MX und höher
Adobe Flex
Die Technik bezieht sich auf:
Siehe User Agent Support for Flash für allgemeine Informationen zur Unterstützung durch Benutzeragenten.
Das Ziel dieser Technik ist es, Benutzer zu benachrichtigen, dass die Zeit zur Fertigstellung einer Interaktion fast abgelaufen ist. Wenn Scripte Funktionalitäten, die zeitliche Begrenzungen haben, bereitstellen, kann das Script eine Funktionalität enthalten, um den Benutzer vor den unmittelbar bevorstehenden zeitlichen Begrenzungen zu warnen und um einen Mechanismus bereitzustellen, mehr Zeit zu erbitten. 20 Sekunden oder mehr, bevor die zeitliche Begrenzung auftritt, stellt das Script einen Bestätigungsdialog zur Verfügung, der besagt, dass eine zeitliche Begrenzung unmittelbar bevorsteht und fragt, ob der Benutzer mehr Zeit benötigt. Wenn der Benutzer mit „Ja“ antwortet wird die zeitliche Begrenzung zurückgesetzt. Wenn der Benutzer mit „Nein“ antwortet oder gar nicht reagiert, darf die zeitliche Begrenzung ablaufen.
Diese Technik umfasst zeitliche Begrenzungen, die über die setTimeout()-Methode festgelegt wurden. Wenn zum Beispiel die zeitliche Begrenzung bei 60 Sekunden liegen soll, dann können Sie die zeitliche Begrenzung auf 40 Sekunden festlegen (20 Sekunden weniger als die gewünschte zeitliche Begrenzung) und einen Bestätigungsdialog anzeigen. Der Bestätigungsdialog legt eine neue zeitliche Begrenzung für die verbleibenden 20 Sekunden fest. Wenn der Benutzer um mehr Zeit bittet, wird eine neue zeitliche Begrenzung festgelegt. Wenn allerdings die zeitliche Begrenzung der 20-Sekunden-„Schonfrist“ abläuft (was bedeutet, dass nun 60 Sekunden vergangen sind), dann werden die Schritte, die dem Ablauf der 60 Sekunden dauernden zeitlichen Begrenzung in der ursprünglichen Planung entsprechen, eingeleitet.
Dies ist ein einfaches AS2-Beispiel einer zeitlichen Begrenzung, die vom Benutzer verlängert werden kann. Nach 40 Sekunden Inaktivität wird ein Warnhinweis angezeigt, der davor warnt, dass sie Sitzung gleich abläuft. Der Benutzer hat 20 Sekunden Zeit, um die Leertaste zu drücken oder auf die „Ja“-Schaltfläche zu klicken. Beachten Sie, dass eine Dauer von 40 Sekunden für die meisten Aufgaben nicht ausreichen würde und für eine einfachere Demonstration künstlich kurz gehalten wurde.
Code-Beispiel:
import mx.controls.Alert;
import flash.accessibility.Accessibility;
mx.accessibility.AlertAccImpl.enableAccessibility();
var sessionTimeout;
var sessionNotificationTimeout;
var timeLimit: Number = 60000;
var sessionAlert: Alert;
resetTimeout();
testField.addEventListener("change", resetTimeout);
function resetTimeout() {
clearTimeout(sessionTimeout);
clearTimeout(sessionNotificationTimeout);
sessionTimeout = setTimeout(endSession, timeLimit);
sessionNotificationTimeout = setTimeout(showTimeoutAlert, timeLimit - 20000);
}
function showTimeoutAlert() {
sessionAlert = Alert.show("Click the YES button to extend your session",
"Your login session is about to expire, do you need more time?",
Alert.YES | Alert.NO, null, handleAlertClick);
}
function endSession() {
sessionAlert.deletePopUp();
Alert.show("please log in again",
"Your session has expired");
}
function handleAlertClick(e) {
if (e && e.detail && e.detail == Alert.YES)
resetTimeout();
}
Für eine Demonstration sehen Sie sich das funktionierende Beispiel für „Using ActionScript to offer a time limit extension before the timeout expires“ (Benutzung von ActionScript, um eine Verlängerung der zeitlichen Begrenzung anzubieten, bevor die zeitliche Begrenzung abläuft) an. Die Quelle für „Benutzung von ActionScript, um eine Verlängerung der zeitlichen Begrenzung anzubieten, bevor die zeitliche Begrenzung abläuft“ steht zur Verfügung.
Laden Sie die Seite und stellen Sie einen Kurzzeitmesser auf 20 Sekunden weniger als die zeitliche Begrenzung.
Wenn der Kurzzeitmesser abläuft prüfen Sie, ob ein Bestätigungsdialog angezeigt wird, der vor der bevorstehenden zeitlichen Begrenzung warnt und der es dem Benutzer ermöglicht, die zeitliche Begrenzung innerhalb von 20 Sekunden zu verlängern.
Test #2 ist wahr
Wenn dies eine ausreichende Technik für ein Erfolgskriterium ist, dann bedeutet das Scheitern an diesem Testverfahren nicht zwangsläufig, dass das Erfolgskriterium nicht auf irgendeine andere Art und Weise erfüllt wurde, sondern nur, diese Technik nicht erfolgreich implementiert wurde und nicht benutzt werden kann, um die Konformität zu erklären.