คำอธิบายปัญหา: แสดงบนแถบสถานะเวลาที่ผู้เยี่ยมชมอยู่ในหน้านี้ (เช่น: คุณอยู่ในหน้านี้ (ตัวอย่าง: คุณอยู่ในหน้านี้เป็นเวลา X ชั่วโมง X นาที X วินาที)
ปัญหานี้เทียบเท่ากับการออกแบบตัวจับเวลาเพื่อแสดงระยะเวลาที่ผู้ดูอยู่ในเพจ เพื่อแก้ไขปัญหานี้ มีสองวิธีหลักที่อยู่ในใจของฉัน
วิธีที่ 1: ใช้เวลาของระบบ นั่นคือ ขั้นแรกให้ตั้งค่าตัวแปรเพื่อรับเวลาเริ่มต้นการเข้าสู่ระบบ startTime จากนั้นใช้ฟังก์ชัน setTimeout() เพื่อรีเฟรชเพจอย่างต่อเนื่อง ขณะรีเฟรช ให้รับเวลาปัจจุบัน nowTime จากนั้นลบเวลาเริ่มต้นการเข้าสู่ระบบออกจากเวลาปัจจุบัน ซึ่งเป็นเวลาพัก จะไม่เขียนรายละเอียดไว้ที่นี่ เรามาเน้นที่วิธีที่สองที่ใช้ด้านล่างนี้เพื่อนำไปใช้
วิธีที่ 2: ตั้งค่าตัวแปรสามตัว: วินาที นาที ชั่วโมง จากนั้นให้วินาทีเพิ่มขึ้น 1 ต่อไป และใช้ setTimeout เพื่อรีเฟรชเพจทุกๆ วินาที เมื่อวินาทีมีค่ามากกว่าหรือเท่ากับ 60 นาทีจะเริ่มเพิ่มขึ้น 1 และวินาทีจะถูกรีเซ็ตเป็นศูนย์ ในทำนองเดียวกัน เมื่อนาทีมากกว่าหรือเท่ากับ 60 ชั่วโมงจะเริ่มต้นที่ +1 ด้วยวิธีนี้ ฟังก์ชันจับเวลาจึงสามารถรับรู้ได้
รหัสสำหรับวิธีที่สองมีดังนี้:
คัดลอกรหัสรหัสดังต่อไปนี้:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<หัว>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>เอกสารที่ไม่มีชื่อ</title>
</หัว>
<body onload="timeCount()">
<script type="text/javascript">
var วินาที=0;
var นาที=0;
var ชั่วโมง=0;
ฟังก์ชั่นการนับเวลา () {
วินาที=วินาที+1;
setTimeout("timeCount()",1000);
ในขณะที่(วินาที>=60){
นาที=นาที+1;
วินาที=0;
ในขณะที่(นาที>=60){
ชั่วโมง=ชั่วโมง+1;
นาที=0;
วินาที=0;
-
-
window.status="คุณอยู่ในหน้านี้"+ชั่วโมง+"ชั่วโมง"+นาที+"นาที"+วินาที+"วินาที";
-
</สคริปต์>
</ร่างกาย>
</html>
เอฟเฟกต์การวิ่งจะแสดงในรูป