class FormSubmissionTimer {
constructor(formId) {
this.formId = formId;
this.startTime = null;
this.submissionCount = 0;
this.totalTime = 0;
this.submissionTimes = []; // Array to store submission times
}
start() {
this.startTime = performance.now(); // Record start time
}
stop() {
if (this.startTime === null) {
console.warn("stop() called before start().");
return;
}
const endTime = performance.now();
const submissionTime = endTime - this.startTime;
this.submissionTimes.push(submissionTime);
this.totalTime += submissionTime;
this.submissionCount++;
this.startTime = null; // Reset start time for next submission
this.logSubmission(this.submissionCount, submissionTime);
}
logSubmission(submissionNumber, submissionTime) {
const formattedTime = (submissionTime / 1000).toFixed(3); // Convert to seconds
console.log(`Submission ${submissionNumber}: Time = ${formattedTime} seconds`);
}
getAverageSubmissionTime() {
if (this.submissionCount === 0) {
return 0;
}
return this.totalTime / this.submissionCount;
}
reset() {
this.startTime = null;
this.submissionCount = 0;
this.totalTime = 0;
this.submissionTimes = [];
}
}
// Example usage (assuming you have a form with id 'myForm'):
// const formTimer = new FormSubmissionTimer('myForm');
// formTimer.start();
// // When the form is submitted:
// formTimer.stop();
// // To get the average time:
// const averageTime = formTimer.getAverageSubmissionTime();
// console.log(`Average submission time: ${averageTime} seconds`);
// //resetting the timer
// //formTimer.reset();
Add your comment