Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2019-08-16:谈谈如何对WebView进行优化? #123

Open
Moosphan opened this issue Aug 16, 2019 · 11 comments
Open

2019-08-16:谈谈如何对WebView进行优化? #123

Moosphan opened this issue Aug 16, 2019 · 11 comments

Comments

@Moosphan
Copy link
Owner

No description provided.

@hongcwamazing
Copy link

我先来,最简单的,设置先加载文字,然后在加载图片,会快一点😂,然后就是体验问题了,你可以自定义一些loading让加载的时候好看一点。

@zhaoerlei1989
Copy link

这是美图webview优化我感觉这是个方法
https://mp.weixin.qq.com/s/-WceVvEKp8bKtIJQsD3Srw

@SuDreamer
Copy link

太高深的我不懂,但我晓得webview木有加载超时的回调监听,需要自己开定时器哦。

@gabyallen
Copy link

这是美图的WebView我优化感觉这的英文个方法
https://mp.weixin.qq.com/s/-WceVvEKp8bKtIJQsD3Srw

@Fritz-Xu
Copy link

可以试下以上的方法进行优化:

  1. 单/多进程化:webView在独立的进程里面,那么WebView的进程崩溃不会影响到主进程运行;同时WebView的安 全漏洞也很难影响到主进程;如果是多进程的话,可以使用WebView的容器池,有二次秒开的作用;不过缺点就是需要你做好和WebView的跨进程通讯了

  2. 网络优化:我们可以让WebView的host和客户端的host保持一致,那么就达到复用DNS缓存的效果;如果客户端有针对网络请求进行了优化,那么可以让WebView的全部网络请求托管给客户端

  3. H5离线包:这个是手Q的H5方案之一,让客户端提前去下载离线的H5数据包,WebView只需要加载本地H5数据包即可,这么做不仅可以避免一些http的劫持,而且跳过了WebView的建立TCP连接和H5、CCS等数据下载的过程,直接开始UI渲染,大大提高了WebView的效率

@chenqi5256969
Copy link

用户体验方面,可以在顶部显示一个一个progress,显示网页加载进度,而不是一个白屏呈现给用户看。

设置一个全局的WebView,减少WebView初始化的时间,避免后续操作的堵塞

@MrShuHong
Copy link

1、webview白屏优化
2、由于webview使用的时候存在大量的内存泄漏情况,单独开一个进程显示webview内容

@weikano
Copy link

weikano commented Sep 2, 2019

chrome tabs据说要比webview好,可以在fallback时使用webview

@xiaoyunfei
Copy link

webview加载的大致分为三个阶段:
1、webview的创建和初始化;2、网络链接、下载资源,比如js、css以及图片等;3、界面的绘制;
第一个阶段,白屏,第二个阶段loading状态,第三个阶段展示;

针对第一个阶段优化:
1、APP打开先创建一个空的webview:第一次打开webview比第二次打开webview慢,因为webview打开之后会创建一些公用的服务,第二次再次打开不用再次创建

针对第二阶段优化:
1、DNS域名优化:webview的网络请求以及资源的链接的域名,和项目api所有域名一致,节省域名解析的解析的时间;
2、js、css以及图片等资源文件要压缩之后,再使用:减少资源下载时间;
3、部分资源可以存放在本地,或者通过热更的方式进行下载;
4、部分网络请求在webview创建的时候,就可以开始调用;

@aositeluoke
Copy link

aositeluoke commented Dec 6, 2020

  • 进度条优化,加载进度未80%时,隐藏进度条
  • 标题优化,避免在标题栏暴露加载地址
  • 使用缓存,提高加载速度
  • 使用https和httpdns,降低运营商劫持率、减少网络延迟、减少请求数据流
  • 使用独立进程,独享更大的内存空间,即使加载网络出错导致应用崩溃也不会影响到主进程
  • 使用全局代理免流访问

优秀文章

如何设计一个优雅健壮的Android WebView?(上)
如何设计一个优雅健壮的Android WebView?(下)

@senlinxuefeng
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests