JavaScript基础13--同步和异步&touch事件
JavaScript是单线程语言,程序执行只有一个线程参与。JS在ES5引入的多线程的概念,但是实际上其他线程只能进行辅助操作,计算或者绘制。例如DOM操作 都是由主线程控制的。
同步和异步
JavaScript中的每个要执行的 功能 可以称为是一个任务,任务分为同步和异步两种。
同步任务
按照代码顺序,从上到下,从左到右,一次执行。某些任务较为耗时或者执行时间不确定,就不能采用同步任务了。
异步任务
JS中一些较为耗时或者执行时间不确定的功能会被设置为异步任务。常见的异步任务—事件,定时器,Ajax。异步任务的执行比同步任务晚。
click和onclick
click();方法用于自动触发用户点击效果,可以通过代码的点击事件效果。
onclick();是获取一个对象的方法,并进行调用,并没有触发点击事件。有事件对象不能用这个。
touch事件类型
移动设备上无法使用鼠标,当手指触碰屏幕时会触发 click、mousedown、mouseup 事件。
但是,touch事件要比鼠标事件执行效率高,用户体验好。
- ontouchstart,手指按下事件
- ontouchmove,手指移动事件
- ontouchend,手指松开事件
touch事件对象
- 常见的属性
- 事件对象.touches :位于屏幕上的所有手指的列表;
- 事件对象.targetTouches :位于该元素上的所有手指的列表;
- 事件对象.changedTouches:被改变的手指列表。 touchstart时包含刚与触摸屏接触的触点,touchend时包含离开触摸屏的触点
- 手指的位置
- 手指对象.clientX/Y 手指相对于可视区域
- 手指对象.pageX/Y 手指相对于文档
注意:手指对象.clientX/Y 使用较多
常见的手势
transitionend事件
css中过渡结束后检测的行为