针对东方有线机顶盒UUTVOS操作系统中内置的联彤浏览器web开发,总结一些自己在开发中遇到的问题和技巧。浏览器是基于Firefox的阉割版,所以开发中有一些莫名其妙的坑。已经尝试过使用Vue开发机顶盒web项目,体验较差:首次加载时间长、页面卡顿。由于项目进度推进,当时没有尝试组件懒加载和路由懒加载处理,这样做或许可以减少首次加载时间。推荐使用 JQuery 进行开发。
position:absolute;
display:inline-block;
.load()
overflow:scroll
我们的后台是现成的,直接把代码拷贝到服务器上,在机顶盒上就可以随时预览到项目。
机顶盒浏览器的性能非常低,如果还要做视频播放的话,JS 可发挥的空间相当有限。
$(id).css({"backgroundImage":"url('...')"})
$(id).attr({"src":"./*.jpg"})
$(id).addClass()
a:focus {}
机顶盒内置的浏览器很恶心啊,阉割版的就算了,一些逻辑上的东西跟PC上也不同。
setTimeout(function(), ms)
$(document).keydown(function () { if (event.which === 4097) { var distance = $("#list").scrollTop(); sessionStorage.removeItem("listScrollTopVal"); sessionStorage.setItem("listScrollTopVal", JSON.stringify(distance)); // 按下确定键后,把获得焦点的元素的 id 保存到 sessionStorage中, // 这个时候就要在外边加一个延时函数,甚至可以将时间设置成 0ms 也行。 setTimeout(function () { sessionStorage.removeItem("listFocusItemId"); sessionStorage.setItem("listFocusItemId",JSON.stringify(document.activeElement.id)); }, 100); } });
position:absolte;
position:relative
flaot:...
overflow:scroll;
电视机的可视区域固定,整个页面是不滚动的,业务场景中,页面中的局部需要滚动:列表页、详情页。
overflow:scroll;
需要滚动的内容
机顶盒浏览器的性能本来就很差,在同一个页面的 Tab 上切换多个视频播放,按键过快的情况下,UI上焦点连续切换过去很多个元素了,视频的播放地址才挨个往过去切换,这个时候很容易造成卡顿或者浏览器假死。
$("#nav--second").keydown(function(event){ if(event.which === 39) { // 这里的EVAN是一个全局的命名空间,EVAN.timer是一个全局变量 clearTimeout(EVAN.timer); EVAN.timer = setTimeout(function () create(EVAN.homePageVideoUrlArr[2]); }, EVAN.gap); // 时间1-2s左右比较合适。 } });