2018年05月30日1点15分,接TPE NOC报TPE S3S段的Repeater R07 于2018年4月26日发生故障,当前业务不受影响。预计修复时间为6月11日至6月18日。修复期间经过S3S(Tanshui—BU2)的业务将会全部中断。届时,受影响电路总带宽1057.866G。
上海/广州——日韩,台湾——北美
http://data.cheshirex.com/400.html
2018年05月30日1点15分,接TPE NOC报TPE S3S段的Repeater R07 于2018年4月26日发生故障,当前业务不受影响。预计修复时间为6月11日至6月18日。修复期间经过S3S(Tanshui—BU2)的业务将会全部中断。届时,受影响电路总带宽1057.866G。
上海/广州——日韩,台湾——北美
http://data.cheshirex.com/400.html
TLD(顶级域名)是用于在互联网上找到您的地址。就像您公司的街道地址用于寻找您的办公地址一样,域名也用于查找您的网站。
以我们这个为例:www.homedt.cn
1.www-指万维网。在homedt之前输入它意味着您正在访问Internet以搜索homdt.cn下存在的任何内容。
2.homedt是我们域名的名字。
3. .cn是顶级域名(TLD),也称为域名扩展名。
如果您准备好了网上业务,并希望向全世界宣传您和您的业务,那么注册域名就是第一步。通过该域名来识别您的网站。
域名对于任何企业来说都是一项很关键的任务,所以你需要考虑选择一款适合你的。我们建议您在选择时考虑以下几项:
首先思考:如果您要在百度上搜索自己,您会搜索哪些内容?你的名字?你的事迹?
多选择几项,看看哪些是可用的。
向朋友或家人询问他们的意见。不要花费太多的时间,因为你可能回过头来发现,您在浏览互联网时,你想到ide域名已经被他人注册。
保持简短,并且容易理解记忆。域名长度可以有2到67个字符这么长,合理的使用它。
现在许多.com域名都已经被注册下来,不要担心。我们还可以选择其他易于记忆的域名后缀,而不是必需选择.com
截止到2014年全世界上就有了超过700个顶级域名,现在几乎所有现有得商业公司都有自己的域名。
2018年5月28日晚24点,PAC机房升级网关设备,将有个别服务器受到影响。
有使用安全狗等绑定网关mac的,请提前解绑下,以免更换以后服务器网络不通。
PAC机房:https://www.homedt.cn/hkpac
5/25/16:02韩国地区网络波动正在恢复中
目前我司受影响的为SK机房:https://www.homedt.cn/krsk
国际枢纽POP问题,除了SK线路还有NTT线路也收到影响。AS395776
5/25/16:42分更新:网络已恢复
导语 企业微信移动端项目中有需求要展示数据趋势的可视化图表,经过调研,最终决定以单页面 H5 来完成,对 APP 里的一些使用 H5 实现的功能模块,一般体验都比原生差,那么怎么提高h5加载速度?优化 h5 体验?
适用场景:需要快速迭代、客户端难实现的、用作展示的功能模块,例如可视化图表。
一、为什么 H5 体验糟糕
为什么打开一个 H5 页面会有一长段白屏时间?因为它做了很多事情,大概是:
初始化 webview -> 请求页面 -> 下载数据 -> 解析HTML -> 请求 js/css 资源 -> dom 渲染 -> 解析 JS 执行 -> JS 请求数据 -> 解析渲染 -> 下载渲染图片
一般页面在 dom 渲染后才能展示,可以发现,H5 首屏渲染白屏问题的原因关键在于,如何优化减少从请求下载页面到渲染之间这段时间的耗时。
二、如何优化
上述打开一个页面的过程有很多优化点,包括前端和客户端,常规的前端和后端的性能优化已有前辈们总结过最佳实践,主要的是:
降低请求量:合并资源,减少 HTTP 请求数,minify / gzip 压缩,webP,lazyLoad。
加快请求速度:预解析DNS,减少域名数,并行加载,CDN 分发。
缓存:HTTP 协议缓存请求,离线缓存 manifest,离线数据缓存 localStorage。
渲染:JS/CSS优化,加载顺序,服务端渲染模板直出。
一般情况下,我们只要对照这个列表,对比差异就基本能搞定绝大部分前端性能问题了。不过我们在里面仔细再分析下,对首屏启动速度影响最大的就是网络请求,包括请求 HTML、css、image 等静态资源和展示数据的请求。
那么将 H5 相关页面和资源打包到客户端中,然后客户端将展示数据传给页面,通过webView加载展示,这样几乎不需要网络请求,webview 只要渲染页面,执行js即可,这样体验岂不是很完美?
三、具体怎么实现?
整体思路看起来比较清晰,但是其中有几个关键问题需要解决:
3.1 本地H5页面如何和native通信:
本地 H5 页面如何和 native 通信的方式基本有三种:jsapi、URL Scheme 和 字符串替换。具体不同方式适合使用场景有所不同:
jsapi :客户端提供接口,注入 API让 Javascript调用,直接执行相应Native代码,适用于需要通过交互,进行数据请求的场景
URL Scheme : Web 端发送 URL Scheme 请求,之后 Native 拦截到请求并根据 URL Scheme 及所带的参数进行相关操作。适用于进行页面跳转的场景。
字符串替换: 客户端读取本地 H5后,通过对 H5 中的约定的标记位进行字符串替换,然后加载展示页面。适用于没有复杂交互,只通过页面渲染数据的场景。
3.2 如何开发调试和维护
开发本地 H5 模块,很容易想到在本地通过模拟数据开发,然后将 H5 给到各客户端打包后进行联调。然而这样的方案实现起来十分繁琐,原因是 H5 资源给到客户端打包时很分散,不统一,管理困难。
那么我们改进一下,将使用本地 H5 实现模块的页面建立一个统一 git 仓库,IOS 和 android 客户端通过git submodule 将本地 H5 的git 外链到项目中,这样客户端中的资源就可以统一管理,解放了每次都手动繁琐的替换打包工作。
但是这种方法其实也并不完美,H5 代替原生实现的优势,一个在于开发成本低,另一个在于 H5 可以更加快捷的更新迭代,如果打包在客户端中的H5 页面就像客户端一样,没法快速更新了。很容易想到将 H5 资源给到后台,客户端按照业务模块预下载整个离线包,离线包根据版本做增量更新。这种的方案,就可以较好的解决上面的问题了。
四、细节优化
解决了上面的问题,本地 H5 确实可以达到秒开的加载速度,不过要达到和客户端一样的体验,还需要配上一些细节优化:
预加载 webView,预拉取数据
在联调本地 H5 页面过程中,发现首次加载页面时间比后续打开时间都慢很多,原因预计是 webView 首次初始化时候需要启动资源和服务较多,于是尝试客户端在预先初始化 webView 方案,果然这样第一次打开页面时候就变快了。同时为了 H5 在第一次打开时能直接展示数据,客户端在页面打开前就预拉取数据并缓存,这样来减少请求数据时间导致的白屏。
屏蔽webview HTML 内容自动识别
在 IOS webView 中默认会自动检测 HTML 中手机号、email、地址格式并标记。
解决方法:通过添加 meta 头来禁止默认行为
<meta name="format-detection" content="telephone=no,email=no,adress=no">
点击延迟
在WebView中,click通常会有大约300ms的延迟(同时包括链接的点击,表单的提交,控件的交互等任何用户点击行为)。
解决方法:使用fastclick/touchend一般可以解决这个问题。
国际化
客户端内的 H5 也需要国际化,前端国际化方案有很多,通常情况下都是根据项目框架选择相应的国际化插件,然而在本地 H5 的页面中,再引入额外插件会增加客户端打包大小,略显冗余。适合自己的才是最好的,这里采用了一种适合轻量级的国际化方案。
1.提取语言文案
2.页面和 js 中引用提取的文案
3.根据配置切换语言方案
$('.i18n').each(function() { var key = $(this).attr('name'); $(this).html(language[key]); }); var language = getQueryVariable('en') ? i18n.en : i18n.zh
WKWebView 兼容
WKWebView 性能比 UIViewView 性能好很多,所以客户端开发一般都推荐使用 WKWebView。
但是使用 WKWebView 加载本地的 HTML 时也有一些兼容问题,在 iOS8 不能在 HTML 文件中引用本地的 css 或者 js 或者图片文件,IOS8 以上的是正常的,可以引用远程资源。为了兼顾兼容性和秒开体验,所以做降级方案,通过系统版本动态加载JS, IOS8 使用网络资源,IOS8 以上使用本地资源。
还有在iOS8中,使用一些远程的 cdn 的 css 或者 js 文件,必须注意在引用标签上加上 charset属性,不然 css 和 js 库将会乱码
五、最后
从前端优化,到客户端缓存,到离线包,到更多的细节优化,做到上述这些点,H5 页面在启动上差不多可以媲美原生的体验了。
总结起来,大体优化思路就是:减少一切网络请求,做好预加载和缓存,尽量在用户打开之前就加载好所有内容。这里有些优化手段也要根据项目和实际需求来评估,需要跟开发成本和效率权衡。上述讨论的仅针对功能模块类的单页面 H5 页面秒开的优化方案,其他一些交互较复杂的 H5 页面可能并不适用,还需要视实际情况和需求而定。
参考文献
WebView性能、体验分析与优化:https://tech.meituan.com/WebViewPerf.html
联邦在线联手中国移动通信有限公司为广大站长用户提供福利啦
现免费给使用南阳移动机房的用户提供免费、不限带宽、不限流量的移动网内CDN加速服务!
南阳机房服务器特价表:
L5630*2/16G/1T/20M 300元月
L5630*2/16G/1T/100M 700元月
L5630*2/16G/1T/1000M 6000元月
南阳机房介绍页面:https://www.homedt.cn/nyyd
咨询QQ:28575315
使用要求:
填写安全责任书(写上网址备案号),签字、盖章然后拍照发送给联邦在线客服即可!客服QQ:28575315
安全责任书下载:中国移动cdn用户网络信息安全责任书
广州-北美 5月13日10:15开始 中断400G(SJC及LAX各200G),中断原因未知。
上海-北美 5月13日10:15开始 中断200G(SJC及LAX各100G),中断原因未知。
https://data.cheshirex.com/326.html
通知:
2018年5月11日9:00~12点,南阳机房进行ARP安全升级(网关升级)和DDOS防护策略升级,将出现若干次网络波动,如果有个别用户机器不通超过5分钟的话重启下机器应该就好了,因为做ARP升级之后将有一部分特定数据包协议导致识别新的网关MAC失效,所以不必惊慌,此次升级之后,该机房将获得以下优势:
1,降低IP盗用风险,减少ARP挂马的风险
2,数据中心层面的DDOS承载能力达到200Gbps(并不是指单台防护有多大的改观,从某种意义上讲,有用户被攻击时,其他用户将免受影响)
国内镇江机房CN2线路服务器上线!
首家国内CN2线路的服务器正式上线,机房为国内镇江电信IDC数据中心
机房介绍:https://www.homedt.cn/zjdx
国内CN2服务器配置:
L5520*2/16G/1T/20M 电信CN2 400元/月
L5520*2/32G/1T/20M 电信CN2 600元/月
E5-2650*2/32G/1T/20M 电信CN2 800元/月
E5-2650*2/64G/1T/20M 电信CN2 1100元/月
L5520*2/16G/1T/100M 电信CN2 900元/月
L5520*2/32G/1T/100M 电信CN2 1100元/月
E5-2650*2/32G/1T/100M 电信CN2 1300元/月
E5-2650*2/64G/1T/100M 电信CN2 1800元/月
服务器租用联系QQ:28575315
镇江电信IDC数据中心现已上线BGP线路。
新品促销正在活动中==https://www.homedt.cn/huodong
服务器配置:
L5520*2/16G/1T/10M BGP线路 500元/月
L5520*2/32G/1T/10M BGP线路 700元/月
E5-2650*2/32G/1T/10M BGP线路 900元/月
E5-2650*2/64G/1T/10M BGP线路 1200元/月
L5520*2/16G/1T/100M BGP线路 1200元/月
L5520*2/32G/1T/100M BGP线路 1400元/月
E5-2650*2/32G/1T/100M BGP线路 1600元/月
E5-2650*2/64G/1T/100M BGP线路 1900元/月
服务器租用联系QQ:28575315
机房介绍页==https://www.homedt.cn/zjdx