mui-5+api(plus)加载顺序

ios上plus是一直存在的,不涉及等ready事件。但安卓上仍是须要等plus ready。
在安卓环境中,一般状况下须要html页面解析完成后才会让5+ API生效,安卓的执行的顺序为:
1. 加载html页面,loading
2. 解析html页面(解析title节点、下载script/link等节点引用的资源,如js/css文件)
3. 触发DOMContentLoaded事件
4. 触发plusready事件
此文对执行顺序有详细描述:http://ask.dcloud.net.cn/article/571javascript

咱们老是在不停追求性能优化,生效时间越早,咱们能够把app的体验作的更好。
在HBuilder7.5版本以后安卓版支持提早注入5+ API,能够在plusready事件触发以前调用5+ API,操做方法是在页面中添加如下节点:
<script src="html5plus://ready"></script>,示例以下:css

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8"/>
        <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
        <title>HTML5+ API</title>
        <script src="html5plus://ready"></script>
        <script type="text/javascript" charset="utf-8">
// 这里能够调用5+ API了,为了更好的兼容性,应该使用如下代码进行判断
if(window.plus){
    // 在这里调用5+ API
}else{// 兼容老版本的plusready事件
    document.addEventListener('plusready',function () {
        // 在这里调用5+ API
    },false);
}
        </script>
    </head>
    <body>
Hello HTML5 plus.
    </body>
</html>

注意
1. 5+ API虽然能够提早生效,但为了避免引起向下兼容问题,plusready事件并不会提早触发,该事件仍然保持原来的触发时机;
2. 提早生效的Plus api,操做时需注意,此时DOMContentLoaded事件高几率未触发,此时操做dom会失败,操做dom也仍是得等到DOMContentLoaded后;
3. Android3.0及以上平台才支持提早生效,Android2.*版本不支持此功能;html

相关文章
相关标签/搜索