本地缓存百度地图离线JS,等项目启动完成自动更新该js文件。

IOS app 提交到appstore审核的时候,有的时候并不能保证网络一直通畅,页面出现卡顿,特别是在打开app的时候请求了很多第三方js库,像百度api,百度统计,腾讯统计,极光推送,jquery,loadingjs等等。如果其中一个库请求网络的时候慢就会导致整个页面渲染慢并且出现卡顿,从而导致appStore审核不通过。所以我们通常为了使页面更加流畅会事先把最新的第三方库先下载到本地文件夹中,把它放到assets/js文件夹下,但是如果每次都是从本地取,快虽然是快了,如果第三方API库的js代码有更新,它是不会主动通知我们引入了js库的使用者的,这个时候如果第三方库改了比较关键的代码,就会导致我们的app  Crush 或者 ANR 、或者点击按钮没有反应。所以我们第一次加载了本地的js文件之后还需要在一定时间内例如5秒钟后从远程服务器上取一下最新的js库,取完之后替换本地已经加载到head中的script使它保持最新就能避免因为本地资源js文件不是最新第三方库的代码而导致app崩溃或者无响应。举个列子以百度地图开放平台api web浏览器端为例子:

baiduapi生成地址

<script type="text/javascript" src="https://api.map.baidu.com/api?v=3.0&ak=xxxxxx"></script>

拿连接生成js

 (function(){window.BMAP_PROTOCOL = "https"; window.BMap_loadScriptTime = (new Date).getTime(); document.write('<script type="text/javascript" src="https://api.map.baidu.com/getscript?v=3.0&ak=xxx&services=&t=20200520175020"></script>');})(); 

安装加载扩展js脚本包

npm install --save load-external-scripts

index.html页面中script脚本配置

<script type="text/javascript" id="loadingBaiduAPI" src="assets/js/baiduapi.js"></script>

设置app启动5秒后执行动态加载替换指定对应ID的script

setTimeout(function() {
  loadScript({ src: 'https://api.map.baidu.com/api?v=3.0&ak=xxxxxx', id: 'loadingBaiduAPI' }),
}, 5000)

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值