[英]How can i get the total seconds elapsed on a web page before pressing a refresh button or redirecting to another page?
我已經將這段代碼用於計時器。 但是在按下刷新按鈕或重定向到另一個頁面之前,我無法設置一個邏輯來獲取此頁面上經過的總秒數。 我還想將經過的總秒數傳遞給我的數據庫。
定時器代碼:
<html>
<head>
<Script Language="JavaScript">
var startDate = new Date();
var startTime = startDate.getTime();
function seconds_elapsed ()
{
var date_now = new Date ();
var time_now = date_now.getTime ();
var time_diff = time_now - startTime;
var seconds_elapsed = Math.floor ( time_diff / 1000 );
document.display.timeElapsed.value = pad ( seconds_elapsed );
setTimeout( "seconds_elapsed ()", 1000 );
return ( seconds_elapsed );
}
function pad ( num )
{
return ( ( num > 9 ) ? num : "0" + num );
}
</Script>
</head>
<body onLoad="seconds_elapsed()">
<form method="get" name="display" action="timer.php">
<input name="timeElapsed" type="text" size=8>
</form>
</body>
</html>
這是一個用window.performance.now()
制作的小例子
<body onload="startTimer()">
<button onclick="showElapsedTime()">Show Seconds</button>
</body>
<script>
var start;
var end;
function startTimer() {
start = window.performance.now();
console.log(start);
}
function showElapsedTime() {
end = window.performance.now();
var seconds = (end - start) / 1000;
alert("Time elapsed: " + seconds.toFixed(2) + " seconds");
}
</script>
你可以這樣做:
頁面中的第二個:
<html>
<head>
<Script Language="JavaScript">
var startTime, endTime;
function start() {
startTime = new Date();
};
function end() {
endTime = new Date();
var timeDiff = endTime - startTime; //in ms
// strip the ms
timeDiff /= 1000;
// get seconds
var seconds = Math.round(timeDiff);
window.location="https://website.com/storetimer.php?second="+seconds;
}
</Script>
</head>
<body onLoad="start()">
<button onclick="end()">Click me</button>
</body>
現在在新的頁面存儲中,在您的數據庫中插入第二個變量,例如:
$second=$_GET['second'];
//insert code
每秒發送一次 AJAX ping,或每次需要時發送。
或者使用 onunload / onbeforeunload 函數並在離開時發送一個ajax。 https://stackoverflow.com/questions/4945932/window-onbeforeunload-ajax-request-in-chrome
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.