技术标签: webview加载的页面和浏览器渲染的页面不一致
一、问题与目标
作为一款注重于内容运营的应用程序,QQ 音乐 Android 客户端的 Web 页面日均 PV 达到千万量级,评论页、MV 页等核心页面均有 Web 页面参与,或完全由 Web 实现。 客户端内 Web 页面的打开耗时与 Native 页面相距甚远,需要系统性优化。然而,现有的前端和跨端优化方案,存在一定局限性。二、指标设计
在展开优化思路和实施的同时,需要建立衡量优化效果的性能指标。其中,
onMainFrameFinished
取第一个非主请求 (HTML) 的资源被拦截的时机。对于绝大多数页面来说,此时已经完成主请求 (HTML) 的下载,并已经开始解析;可以粗略代表主请求流程结束。
- 前端
domInteractive
时,已完成所有页面展示必需资源的请求和处理- 耗时的差异,可以体现任何页面的客户端通用优化效果
- 可以衡量SSR(服务端渲染) 页面的可消费耗时,和CSR(客户端渲染)页面的首帧耗时
webView.evaluateJavascript(
script = “(function(){
return performance.timing.domInteractive;})();”,
callback = { value ->
responseEndDuration = value.toLong() - getOnCreateTimestamp()
}
)
虽然 WebKit 负责维护 Performance Timing 的值,但是 WebView 并未提供接口获取上述时间点的值。
三、优化方案和效果
四、跨端场景的瓶颈与对策
基于在 WebView 场景下的优化过程,推及跨端场景可能存在的类似问题,本文尝试给出一些跨端场景中可能的性能瓶颈及应对方式。五、总结与展望
本文基于客户端内 Web 页面的加载特点,针对 WebView 初始化、资源加载和逻辑处理现状中的问题和瓶颈,设计并实施了 5 个优化项,优化效果比较明显。并且尝试对跨端场景的瓶颈与对策进行归纳,尝试为后续跨端场景的优化工作提供思路。 未来,团队还将进一步丰富客户端与前端的协同性能监控,并允许前端通过更精细化的方式启动客户端 Web 页面框架。远期,还将尝试探索 CGI 前置、引入 JSCore 等手段,进一步提升特定场景下的 Web 页面加载耗时。 参考资料:[1] 微信小程序的双线程模型:
https://developers.weixin.qq.com/ebook?action=get_post_info&docid=0000286f908988db00866b85f5640a文章浏览阅读1k次。TensorFlow是一种基于数据流编程的开源软件库,是人工智能领域中的重要工具,广泛应用于深度学习、自然语言处理等领域。_tensorflow应用
文章浏览阅读196次。为了让应用更快接入,腾讯提供了JS SDK。 JS SDK是现有最简单的接入QQ互联的方式。JS SDK基于QQ互联OAuth2.0协议的client-side模式, 封装了登录流程与【QQ登录】API列表中的所有OpenAPI调用方法。开发者不需了解协议,只需要前台交互,以及将相关的参数修改成自身对应的参数即可使用。 同时,QQ互联又提供了可供第三方高级需求进行自行配置的可选参数与相关..._qclogin_success
文章浏览阅读1.9k次。随着我国城市化速度的加快以及城市规模的不断扩大,交通供需矛盾日益突出,在城市交通网络中产生的交通拥堵现象日趋严重,严重影响了社会经济的发展和人民生活水平的提高。为了提高城市道路交通管理水平,改善城市交通秩序,保障公路交通的畅通与安全,当今世界各国普遍使用智能交通系统。在该系统中,核心的问题是交通信号智能控制。平面交叉口是道路交通的主要冲突点,不仅机动车数量多,而且行人和非机动车也在同一平面通过。目前在我国的大、中型城市交通管理中,普遍采用的是单点定时交通信号灯控制。_交通配时代码
文章浏览阅读2.1w次,点赞2次,收藏28次。前言 为了提高远程桌面的安全级别,保证数据不被***窃取,在Windows2003的最新补丁包SP1中添加了一个安全认证方式的远程桌面功能。通过这个功能我们可以使用SSL加密信息来传输控制远程服务器的数据,从而弥补了远程桌面功能本来的安全缺陷。2.问题描述在Windows server 2003和Windows server 2008,远程桌面服务SSL加密默认是关闭的,需要配置才可以使用;但 Windows server 2012默认是开启的,且有默认的CA证书。由于SSL/ TLS自身存在漏洞缺陷_ssl/tls协议信息泄露漏洞(cve-2016-2183)【原理扫描】
文章浏览阅读514次。错误码描述0无错误,命令正确接收1非法登录,如登录名、口令出错、登录名与口令不符等。2重复登录,如在同一TCP/IP连接中连续两次以上请求登录。3连接过多,指单个节点要求同时建立的连接数过多。4登录类型错,指bind命令中的logintype字段出错。 5 参数格式错,指命令中参数值与参数类型不符或与协议规定的范围不符。 6 非法手机号码,协议中所有手机..._sgip api接口响应 非法登录
文章浏览阅读6.7k次,点赞7次,收藏14次。安装背景:SASS是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护。SASS是Ruby语言写的,但是两者的语法没有关系。不懂Ruby,照样使用。只是必须先安装Ruby,然后再安装SASS。然后我就安装了Ruby过程如下:首先打开Ruby的下载地址https://rubyinstaller.org/downloads/如果您不知道要安装..._ruby.exe
文章浏览阅读717次。edu.51cto.com/sd/4920aHC-SR04传感器引脚由4个:VCC,GND,发射,echo, RPi和超声波传感器这样连接:连接传感器VCC引脚到引脚4 连接传感器GND引脚到引脚9 连接传感器Trig引脚到wiringPi引脚12传感器echo引脚经过分压器后连接到wiringPi引脚13。分压器电路的两个电阻分别是1KΩ和2KΩ。分压器电路用于把输入的5V信号降低到3.3V,避免烧坏主板,它是从echo引脚到RPi如下图:用于把输入电压转为3.3V的公式:._超声波传感器避障算法 c++
文章浏览阅读2.3k次。7.执行安装,如提示success即安装成功。其它错误请拍照发给我看。5.在最后输入adb所在完整路径,前面加上分好;_adb install 安装apk
文章浏览阅读10w+次,点赞167次,收藏1.5k次。十三个经典算法研究与总结、目录+索引「后续更新为十五个」 (PDF下载地址:http://download.csdn.net/detail/v_july_v/4478027)作者:July。时间:二零一零年十二月末-二零一一年四月初。出处:http://blog.csdn.net/v_JULY_v。声明:版权所有,侵权定究。------------------------------_经典算法
文章浏览阅读3.3k次。不能删除。看看文件夹下的内容就知道:1、me_tcat:是MyEclipse记录的当前工作空间中的配置,比如当前工作空间中有哪些工程,打开了哪些文件java类,编辑了哪些文件和Java类,MyEclipse会在启动时加载这个文件夹下的内容。如果删除了,再次打开MyEclipse会发现工作空间是空的,需要重新导入工程。2、plugins:当前工作空间用到了哪些IDE插件,和程程序无关_metadata可以删除吗
文章浏览阅读4.1k次。SeetaFace2 Android 平台编译项目地址:https://github.com/seetafaceengine/SeetaFace2SeetaFace2 人脸识别引擎包括了搭建一套全自动人脸识别系统所需的三个核心模块,即:人脸检测模块 FaceDetector、面部关键点定位模块 FaceLandmarker 以及人脸特征提取与比对模块 FaceRecognizer。面部关键点定位支持 5 点 和 81 点定位,两个辅助模块 FaceTracker 和 QualityAssessor 用_seetafacerecognizer2.0.ats
文章浏览阅读3.2w次,点赞4次,收藏34次。1.删除约束语句:alter table 表名 drop constraint 约束名;alter table mz_sf4 drop constraint pk_id1;2.删除主键语句:alter table 表名 drop primary key;alter table mz_sf3 drop primary key;如果出错:ORA-02273:此唯一主键已_oracle删除主键的sql语句