zoukankan      html  css  js  c++  java
  • 提升html5的性能体验系列之五webview启动速度优化及事件顺序解析]

    webview加载时有3个事件。触发顺序为loading、titleUpdate、loaded。
    webview开始载入页面时触发loading,
    载入过程中如果title已经解析并赋予新值,则触发titleUpdate,
    载入完毕触发loaded。

    如果页面加载足够快,那么titleUpdate和loaded几乎同时触发。
    如果页面加载太慢,则loaded是全部载入完成才触发。

    loaded常用于判断页面是否载入完毕,载入完毕才显示新页面。
    但有时页面内容很长时,全部载入完毕比较慢,导致显示新窗体比较慢。为了让新窗体打开快点,我们可以在titleUpdate时就显示新窗体。
    因为网页本身有分步渲染的机制,所以一般只要第一屏页面渲染完毕就不会让用户看到白屏。

    有人问plus ready和DOMContentLoaded、onload以及上面3个事件的顺序。
    plus的ready和HTML原本的事件是异步并行的,不一定谁快。
    但有一些基本规律。
    首先新webview的loading是最开始触发的。
    然后是新webview的titleUpdate,
    然后是新webview里的HTML的DOMContentLoaded,
    一般情况下新webview里plus ready在DOMContentLoaded之后发生,
    然后是新webview的loaded事件。
    最后还有一个是新页面的body里的onload事件。

    另外再提供一个判断webview载入时间的方法。
    一般webview载入要多久,开发者可以自己使用计时器计时,计算从开始载入到loaded的时间差。
    但首页的载入速度开发者无法编程获得,5+runtime提供了首页的webview的载入时间,plus.runtime.launchLoadedTime。
    这个time最大的用途是判断手机性能。
    首页正常是本地页面,同样的首页在不同手机上loadedtime值是不同的,根据这个值,就知道了这台手机载入网页的速度到底多快。
    这个速度与本地io性能有关,也与渲染能力有关。
    根据这个值,我们可以做很多优化。
    比如在一些高性能手机上,载入新窗体很快,导致出现雪花闪一下又立即消失的情况,此时就没必要让雪花出现了,直接切屏就好了。而低性能手机即loadedtime值较低的则老老实实转雪花

  • 相关阅读:
    zzulioj--1716--毒(模拟水题)
    zzulioj--1715--土豪银行(贪心)
    35.Java中mian方法详解
    34.Java内存布局以及java各种存储区【详解】
    33.Java中static关键字
    32.java的this关键字
    31.Java构造方法
    30.Java对象的特证之一-封装
    29.Java匿名对象
    28.Java局部变量和成员变量
  • 原文地址:https://www.cnblogs.com/susanws/p/5420730.html
Copyright © 2011-2022 走看看