![]() |
#2
wube2017-06-19 16:03
|
代码原功能是~计时5分钟~每5分钟跳出警示视窗~使用者须确认~有确认时间以5分钟为一个单位累计~
没确认网页强制关闭~最后得出总阅读时数~
1.我把每5分钟为一单位的功能去除~因为我目前用不到~
但是我看不懂后面的以5分钟为一单位的总时间累计部分~要如何修改?
2.当离开此页面时~要如何取得当下阅读总时数~让我记录到数据库中?
请高手给点提示~

<script>
var isSaved=0; //是否已储存
var iSeconds=0; //阅读秒数
//var iPeriodSec = 300; //?秒后显示提示讯息
var iSaveCheckSec=30;
var iGoingSec= 0; //重复读取秒数
var myVar;
var cTime;
EnableTimer();
function EnableTimer()
{
myVar = setInterval(function(){Timer()},1000);
}
function SuspendTimer()
{
clearInterval(myVar);
}
function Timer()
{
iSeconds=iSeconds+1;
var minutes = Math.floor(iSeconds / 60);
var secs = iSeconds - (minutes * 60);
var sTime; //阅读时间
if (secs < 10){
secs = "0" + secs
}
if (minutes < 10){
minutes = "0" + minutes
}
sTime= minutes + ":" + secs
document.getElementById("TimerText").innerHTML=sTime;
//if (iSeconds % iPeriodSec ==0){
// SuspendTimer();
// AddTimeOut();
// DxPCConfirm.Show();
//}
};
function CancelTimeOut()
{
clearTimeout(cTime);
};
function AddTimeOut()
{
cTime=setTimeout(function(){ SaveReadingTime('Normal');} ,30000);
};
function SaveReadingTime(sMode)
{
if (isSaved==0 && iSeconds>=iSaveCheckSec){
if (sMode=='Normal'){
isSaved=1;
DxCBSaveReadTime.PerformCallback(sMode + '|' + (iSeconds-iGoingSec));
}else if(sMode=='OnGoing'){
isSaved=0;
iGoingSec =iGoingSec + iPeriodSec;
DxCBSaveReadTime.PerformCallback(sMode + '|' + iPeriodSec);
}
}
};
window.onbeforeunload = function (evt) {
SuspendTimer();
SaveReadingTime('Normal');
}
</script>
<div>
<table>
<tr>
<td>
<span id="ctl00_ContentPlaceHolder_Label1">阅读时间:</span>
</td>
<td id="TimerText">
</td>
</tr>
</table>
</div>