muicss加载顺序

html-css027

muicss加载顺序,第1张

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/571

我们总是在不停追求性能优化,生效时间越早,我们可以把app的体验做的更好。

在HBuilder7.5版本之后安卓版支持提前注入5+ API,可以在plusready事件触发之前调用5+ API,操作方法是在页面中添加以下节点:

<script src="html5plus://ready"></script>,示例如下:

<!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

CSS属于调用,只有网页调用某个样式的时候,才会访问CSS文件,CSS不影响网页文件的加载速度,但是大量冗余代码,会影响CSS的加载速度,图片只要不调用那就跟这个网站没有关系,只是存在你的空间里而已。

CSS不能指定图片加载顺序,应该问的JS指定图片加载顺序。

javascript监听一个图片是否加载完毕 如果加载完成再加载下一张,不是一次性从服务器加载 减少服务器压力, 

可用到的地方:比如制作类似google地图的应用,可以使小图一张一张的加载。

function Load_pic(arr){    //这里接受的图片的所以链接数组。

  this.loop_f=function(i,o_file,len,f,obj){

      if(i<len-1){

          i=i+1

          f(i,o_file,len,obj)

         }

   } 

   this.creat_pic=function(i,o_file,len,obj){

         var f=arguments.callee,

        doc=document,

        image = doc.createElement("img")    

        image.src =o_file[i]

        i<len?doc.getElementsByTagName("body")[0].appendChild(image):''

        if(navigator.userAgent.indexOf("MSIE")>0){   //是IE浏览器

               if($.browser.version==6.0 || $.browser.version==9.0){ //IE兼容处理。       

                   image.onreadystatechange = function () { 

                       if (image.readyState == "complete"){ //image 加载完后,函数回调。

            obj.loop_f(i,o_file,len,f,obj)

                       } 

                   } 

               }else{  //非IE7和IE9的IE浏览器。

                   ie7imagetime = window.setInterval(function(){ 

                       var rs = image.readyState 

                       if(rs=="complete"){ 

                           window.clearInterval(ie7imagetime) 

            obj.loop_f(i,o_file,len,f,obj)

                       }else{ 

                           return 

                       } 

                   },200) 

               } 

           }else{  //非IE浏览器,直接用onload事件

               image.onload = function () { 

                   if (image.complete == true){ 

            obj.loop_f(i,o_file,len,f,obj)

                    } 

               } 

        }

    } 

     if(arr.constructor===Array){  //函数开始执行的地方。

      var len=arr.length,

           i=0

     i<len?this.creat_pic(i,arr,len,this):''

          

    }

 }