本文从同步/异步原理角度出发,介绍了App的优化方法,灵活使用这些方法,可以在开发App时给用户带来更好的使用体验。
标准的JavaScript的执行分为同步和异步两种模式,APICloud的所有扩展API也同样支持同步或异步的调用,它们适用于不同的场景。
在浏览器引擎中,JavaScript引擎是单线程执行的,单线程意味着在同一时间内只能有一段代码被JavaScript引擎执行。所以JavaScript函数以一个接一个的栈方式执行,A函数如果依赖B函数的返回结果,那么A函数必须同步等待B函数返回的结果后才有执行机会。
JavaScript的同步模式符合开发人员通常的编码习惯,但性能问题也因此而起,当函数栈中某个函数的执行耗费时间过长时,将引起函数栈中后边的所有函数延迟执行,引发程序性能问题。这在移动端体验场景优先的场景下是无法接受的。
异步模式因此诞生。APICloud所有的扩展API在现有的JavaScript同步模式的基础上,引入了JavaScript CMD (Common Module Definition) 的模块化定义规范,API的调用遵循AMD(Asynchronous Module Definition)的异步方式加载,通过实现AMD规范下的JavaScript 异步加载模式,能够