javascript的单线程事件循环及多线程介绍

前言

其实我前面文章对于改变js的执行顺序及多线程都有相关介绍!例如,我们可以用setTimeout(fn,0)改变代码执行循序,文章最后也提及了Event Loop(事件循环)。同时,js的Worker可以模拟实现多线程,我前面文章也有类似的应用!例如:js Worker解决ios下面倒计时手滑问题 这篇文章,我详细介绍一下js单线程事件循环,及多线程的实现。

JavaScript单线程原因

JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。这和JavaScript的用途有关。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。例如:假定JavaScript同时有两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准?

移动端video视频播放的痛

痛点

前面我写了一篇婚礼邀请函 动画方面的总结文章,但是一直没有对其中视频播放页面做一个总结。因为我一直没有找到真正做好“视频障眼法”的好的方法。安卓很多浏览器播放视频都会新开窗口,甚至播放完毕会有类似播放器的那种推荐广告,让我很是头疼。我一度以为用canvas绘制视频,应该可以解决这个问题,但是当我用canvas绘制完了视频之后,在微信中播放还是一样弹出新的播放窗口!!这就是移动端video视频播放的痛!

失败案例一:

也就是我目前邀请函用的方式,因为我用canvas绘制了video,发现效果和直接用video一样。因此还是用了原来video的方式,代码如下:

js内存空间及this关键词详解

前言

理解js内存空间,对于我们理解很多题目大有帮助,特别是一些面试题目。例如下面这个题目:

var a = 20;
var b = a;
b = 30;
// 这时a的值是多少?

var m = { a: 10, b: 20 }
var n = m;
n.a = 15;
// 这时m.a的值是多少

很多朋友搞不清楚。

js Worker解决ios下面倒计时手滑问题

前言

倒计时我们经常用。之前我也有很多文章提及过。例如:setTimeout倒计时等等。最近在移动端开发过程中,遇到一个ios手机滑动,倒计时卡住的问题,针对这个问题,我们可以用js的Worker。

倒计时案例

用setInterval写的最基本的倒计时,代码如下:

超大7k高清显示器显示网页解决方案

前言

最近事情很多,家里的事情,公司的事情一大堆。前段时间,给公司做了一个简单的数据大屏,近期又来了数据大屏项目。此次项目连屏幕尺寸和比例都不知道。一开始制作是按照16:9,也就是1920 × 1080。后面公司采购大屏是1920 × 4,1080 × 3,也就是横着4块大屏,竖着3块,总共12块。二且屏幕是高清播放,分别率7680×3240。高清7k屏幕。这个和我之前制作的比例有出入。无奈多次调整。记录一下高清屏出现的2个问题吧。期待朋友有更好的解决方案,欢迎交流!

内嵌网页显示很小问题。