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