首页 > 编程语言 >小程序优化:第三方SDK过大解决方案

小程序优化:第三方SDK过大解决方案

时间:2023-12-25 14:12:05浏览次数:44  
标签:文件 封装 解决方案 fileSystemManager js 域名 写法 第三方 SDK

【前言】

小程序开发中,有时会遇到下面这种情况,项目目录中存放过大的js包,会被警告影响手机端性能,同时让开发编译启动变得很慢。慢是其次,单是影响性能这一点,就需要解决一下。

 

 

【云资源】

将项目js包放入公司的oss、obs之类的云存储上,通过https链接来访问。

https链接不能使用node的require加载,会抛错,但是可以通过其他两种方式进行访问:

  1. request请求

  2. fileSystemManager文件管理器

 

方法1简单,但是不可取,原因如下:

1) 获得的文件信息,没有较好的保存方法,既不能存在store中,也不能存在local中,不仅是数据存储格式问题,更重要的同样会造成性能缺点,总不能解决了一个问题,又创造新的问题

2) 由于1)描述的那样,如果不能存储文件,那么每次需要依赖这个文件时,就需要每次请求接口,这就造成了资源浪费

 

故此,基于以上两点,只能负重前行,选择较为麻烦和让人头疼的方案2(fileSystemManager文件管理器),虽然麻烦,但是却可以一劳永逸,并且可以抽离逻辑封装成一套方法,可以在以后复用。

 

 

【前期准备】

实现方案前,有几个注意事项:

1. 首先要将存放云资源的oss或obs的域名配置在白名单中,这里就需要配置request合法域名和downloadFile合法域名。

 

2. 需要勾选“不校验合法域名...”,不勾选的话,真机会遇到意想不到的问题。

 

 

3. 将js文件转成json文件,如果没办法,就自行抽离js包,拆出一个json文件,因为微信fileSystemManager不支持读取js文件,js文件会变成string文本,但是支持json。

当然,如果你觉得可以使用JavaScript 解释器来破这个局,那么你又一次要碰壁了,微信官方对此做了限制,禁止eval5、estime、evil-eval等动态执行代码的js解释器。

原文地址:关于禁止小程序JavaScript解释器使用规范要求

 

 

【方案思考】

fileSystemManager,它是getFileSystemManager返回的对象,给我们暴露出了多个方法,下面为部分截图

原文地址:FileSystemManager

 

为保证性能和可靠性,这里我们采用下面这种方案:

首次:下载 + 保存 + 读取,非首次:直接读取

流程图如下:

 

 

 

【方法封装】

我这里提供了两种封装写法:

  1. 链式写法,方便回调处理,不需要回调可以采用写法2
  2. 解耦式写法,降低了函数颗粒度,每个方法独立,更加灵活,可以单独使用某一个函数

千言万语,前面的铺垫已完成,直接上代码:

 

链式写法

  

解耦式写法

 

到此,就封装完成了,后面使用看具体场景,来选择链式、解耦式写法。

标签:文件,封装,解决方案,fileSystemManager,js,域名,写法,第三方,SDK
From: https://www.cnblogs.com/wx3091/p/17925976.html

相关文章

  • 萤石网络,一体化智能生活解决方案专家
     2023年年底的各大购物节已然落下帷幕,从消费需求看,如今消费者更倾向于选择个性化,智能化、体验化,高品质的产品。数据显示,能够提升居家生活体验感的智能家居产品销售增长明显,智能门锁更是涨幅喜人。作为科创板智能家居上市企业,萤石网络致力于成为可信赖的智能家居服务商及物联网云......
  • 安全帽AI识别算法在LiteCVR智慧工地解决方案中的应用
    智慧工地是利用物联网、云计算、大数据等先进技术来优化和管理工地施工过程的一种新型施工模式。视频监控在智慧工地中发挥着重要的作用。LiteCVR视频监控系统可以实时监测工地的人员和设备,及时发现安全隐患。例如,监控摄像头可以检测到工人是否佩戴安全帽,是否按规定操作,以及工地是......
  • 运维管理软件解决方案:空间、设备及网络管理的智能化革命
        随着信息技术的飞速发展,企业的运营越来越依赖于复杂的IT系统。这些系统不仅包括了大量的硬件设备,还包括了各种软件和网络资源。因此,对于企业来说,如何高效地管理和维护这些资源变得至关重要。本文将介绍一种运维管理软件解决方案,该方案具有在地图上快速建立或找到建筑、......
  • 连接服务器出现内部错误的原因与解决方案
    服务器作为重要的数据存储和处理中心,其稳定性和可靠性对于企业和个人的业务运营至关重要。然而,在实际应用中,我们经常会遇到连接服务器时出现内部错误的情况。根据用户反馈显示,远程桌面出现内部错误的问题由来已久,已经严重影响了用户的工作和生活。本文将深入探讨连接服务器出现内部......
  • 使用office打开word文档时候提示错误:0x426-0x0的解决方案
    在使用office打开word文档时候提示错误:0x426-0x0。如下图:昨天还用的好好的,怎么今天就不行了?为什么呢?这个错误导致office无法启动通常是由于office软件所依赖的服务无法正常运行导致。为什么会无法启动呢?突然想到,凯哥昨天手贱,昨天电脑重启时候,提示有需要优化的启动项,于是在wind+R,运......
  • 在使用 npm install的时候提示node-sass command faile 解决方案
    在使用npminstall的时候错误提示node-sass相关的。错误信息如下图:解决方法(PS:凯哥的不适用)出现这种问题基本是由于node版本与sass版本不匹配导致的方案1:卸载node,安装对应版本方案2:修改sass版本修改sass版本,有可能导致其他依赖包出错,所以还是重新安装node版本。node-v4、查看node......
  • GB28181安防监控LiteCVR视频平台智慧工地AI视频解决方案
    AI视频技术与安防监控结合使用的场景和技术不仅提高了安全性和准确性,还降低了人力成本和监控盲区,广泛应用于公共场所、企业、学校等各个领域。随着人工智能技术的不断发展,AI视频识别技术在工地场景中的应用也越来越广泛。这种技术可以帮助工地实现智能化、高效化的管理,提高施工质量......
  • 实时获取淘宝商品评论数据:价值、挑战与解决方案
    一、引言随着电商行业的迅猛发展,用户评论在电商决策中的影响力逐渐增强。作为中国电商市场的领军者,淘宝提供了商品评论API,使得第三方开发者可以轻松获取淘宝商品评论数据。本文将深入探讨淘宝商品评论API在电商行业中的重要性,以及如何通过API实现实时数据获取。二、淘宝商品评论API......
  • Configuration 'compile' is obsolete and has been replaced with 'implementati解决
    AndroidStudio更新到3.1.2编译之前的项目直接抛出下面的异常,这让我很是头疼,经过一翻查找发现是我们配置文件中的API已经过期,我对过期的API进行修改就Over了1、异常显示Configuration‘compile’isobsoleteandhasbeenreplacedwith‘implementation’and‘api’.It......
  • PostgreSQL. 异常“more than one owned sequence found”的解决方案
    一、异常信息描述执行数据库操作时,主键id没有自增,且报“morethanoneownedsequencefound”的异常,造成数据没有insert进去,下面是详细的异常信息:java.lang.reflect.InvocationTargetExceptionatsun.reflect.GeneratedMethodAccessor613.invoke(UnknownSource)ats......