首页 > 代码库 > 阿里校招:前端线上笔试题--计算鼠标在页面某个区域内的停留时长
阿里校招:前端线上笔试题--计算鼠标在页面某个区域内的停留时长
校招:阿里前端笔试题
收到笔试通知后恶补了几天阿里前端历年笔试题,巧的是这道题今年有同学做过,而且发到了北邮人bbs上(看来临阵磨枪还是有用的),现在贴上当时提交的代码。
水平有限,有错误烦请指点。
题目:
<div class=‘mod-spm‘data-spmid=‘123‘> <divclass=‘child_a‘></div> <divclass=‘child_b‘></div> <divclass=‘child_c‘></div> <divclass=‘child_d‘></div> </div> <divclass=‘mod-spm‘ data-spmid=‘456‘> <divclass=‘child_a‘></div> <divclass=‘child_b‘></div> <divclass=‘child_c‘></div> <divclass=‘child_d‘></div> </div> <divclass=‘mod-spm‘ data-spmid=‘789‘> <divclass=‘child_a‘></div> <divclass=‘child_b‘></div> <divclass=‘child_c‘></div> <divclass=‘child_d‘></div> </div>有dom结构如上,请用原生代码(禁用jQuery作答)实现以下功能:(a)计算鼠标在mod-spm区域内的停留时长,data-spm不同视为不同区域(b)尽量减少性能损耗(c)重复进入计时累加
代码如下:
<html><head></head><body> <div class=‘mod-spm‘ data-spmid=‘123‘ onmouseover="fun(this.dataset.spmid)" onm ouseout = "funstop()"> <div class=‘child_a‘></div> <div class=‘child_b‘></div> <div class=‘child_c‘></div> <div class=‘child_d‘></div> </div> <div class=‘mod-spm‘ data-spmid=‘456‘ onmouseover="fun(this.dataset.spmid)" onm ouseout = "funstop()"> <div class=‘child_a‘></div> <div class=‘child_b‘></div> <div class=‘child_c‘></div> <div class=‘child_d‘></div> </div> <div class=‘mod-spm‘ data-spmid=‘789‘ onmouseover="fun(this.dataset.spmid)" onm ouseout = "funstop()"> <div class=‘child_a‘></div> <div class=‘child_b‘></div> <div class=‘child_c‘></div> <div class=‘child_d‘></div> </div></body><script type="text/javascript"> var w=new Worker("../workers.js");//使用HTML5 Web Workers属性 function fun(curid){ //Init w.postMessage(curid);//The Worker.postMessage() method sends a message to the worker‘s inner scope. This accepts a single parameter, which is the data to send to the worker. } function funstop(){ w.postMessage(0);//设置id为0,不计数 }</script><html> //worker.js 后台文件 var timers = new Array(); var i = 0; var id = 0; function timedCount() { if(id == 0) return; if(timers[id] == undefined){ timers[id] = 0; } setTimeout("timedCount()",1000);//每隔一秒累加器+1; timers[id] ++; } onmessage = function(spmid){ id = spmid.data; /*the onmessage callback for a Web Worker*/ }
阿里校招:前端线上笔试题--计算鼠标在页面某个区域内的停留时长
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。