JS+Ajax+Servlet:记录页面访问时间
1.前端JS记录页面访问时间
1.1JQuery版本:
<script type="text/javascript" src="js/jquery.min.js"></script>
<script language=JavaScript>
$(document).ready(function() {
var vTimeStart;
var vTimeEnd;
var vTimeVisit;
// 进入页面:记录时间
vTimeStart = new Date();
$(window).bind("beforeunload", function() {
vTimeEnd = new Date();
vTimeVisit = vTimeEnd.getSeconds() - vTimeStart.getSeconds();
alert(vTimeVisit);
// 恶心的360必须有返回值,否则不执行
event.returnValue = "访问用时:" + vTimeVisit + "秒";
// return vTimeVisit +'';
});
});
</script>
1.2纯JsvaScript版本:
<script language=JavaScript>
var vTimeStart;
var vTimeEnd;
var vTimeVisit;
window.onload = function() {
// 进入页面:记录时间
vTimeStart = new Date();
}
window.onbeforeunload = function() {
vTimeEnd = new Date();
vTimeVisit = vTimeEnd.getSeconds() - vTimeStart.getSeconds();
// 恶心的360必须有返回值,否则不执行
event.returnValue = "访问用时:" + vTimeVisit + "秒";
// return vTimeVisit +'';
}
</script>
2.Ajax将页面访问时间发送给服务器(JQuery版本)
回调函数不需要,360的返回值也不需要,因为只要服务器有反应就行了
<script type="text/javascript" src="js/jquery.min.js"></script> <script language=JavaScript> $(document).ready(function() { var vTimeStart; var vTimeEnd; var vTimeVisit; // 进入页面:记录时间 vTimeStart = new Date(); $(window).bind("beforeunload", function() { vTimeEnd = new Date(); vTimeVisit = vTimeEnd.getSeconds() - vTimeStart.getSeconds(); // 将用户行为发送给服务器 $.post("ConductCollectServlet", { visittime : vTimeVisit, }); }); }); </script>
服务器端新建ConductCollectServlet.java
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("收集Servlet:Post"); // 页面访问时间 String strVisitTime =request.getParameter("visittime"); System.out.println(strVisitTime); }
浙公网安备 33010602011771号