WebView基础三:WebView优化

一.优化网页加载速度

默认情况html代码下载webView后,webkit开始解析网页各个节点,发现有外部样式文件或者外部脚本文件时,

异步发起网络请求下载文件,但如果在这之前也有解析到image节点,那是比也会发起网络请求下载相应的图片。

在网络情况比较差的情况下,过多的网络请求就会造成宽带紧张,影响到CSS或js文件的加载时间,

造成页面空包loading过久,解决的办法就是告诉webview先不要自动加载图片,等页面finish后再发起图片加载。
设置webview,先禁止加载图片

webSetting websetting=webview.getSettings();
//图片加载
if(Build.VERSION.SDK_INT >= 19){
    webSettings.setLoadsImagesAutomatically(true);
}else {
    webSettings.setLoadsImagesAutomatically(false);
}

覆写webviewClient的onPageFinished()方法,页面加载结束后再加载图片

@Override
public void onPageFinished(WebView view, String url) {

    super.onPageFinished(view, url);

    if (!view.getSettings().getLoadsImagesAutomatically()) {

        view.getSettings().setLoadsImagesAutomatically(true);
    }
}

PS:4.4以上系统在onPageFinished是在恢复加载时,如果存在多张图片引用时相同的src时,会只有一个image标签得到加载,因而对于这样的系统我们就直接加载。

二 硬件加速页面闪烁问题

4.0以上的系统我们开启硬件加速后,webview渲染页面更加快速,拖动也更加流畅,但是有个副作用就是,当webView视图

被整体遮住一块,然后突然恢复时,(比如使用SlideMenu将WebView从侧边滑出来时,)这个过渡期会出现白块同时界面闪烁。

解决这个问题的方法是

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值