微信团队对Web开发工具持续与快速的迭代升级,为小程序开发者集成更强大的功能及开放更多的API。需要开发者持续关注并应用。 我们将目前小程序开发过程中常见的问题及优化方法在这里介绍一下。 1.网络请求接口域名的限制解决 小程序对网络请求接口域名有明确要求。针对4种服务器域名(request、socket、uploadfile、downloadfile)每种只能*一个合法域名。这样,对于后台业务十分复杂,并使用不同域名对业务进行划分的应用就会有问题,比如腾讯的自选股,后台就十分复杂。应对这个限制,腾讯自选股通过统一代理方式将多个域名收敛为一个域名,由代理层将请求转发。 2.应用内部支持https请求 微信小程序文档中要求wx.request网络请求发起的是HTTPS请求,这对于有各种接口的应用也带来影响。仍以腾讯自选股为例,通过在统一代理层部署证书支持HTTPS请求,这样后端RS机器*改动,成功解决必须是HTTPS请求的问题。 iOS规则自2017.1开始服务器会只支持HTTPS协议的接口,所以,现在开始尽量统一为HTTPS。 3.小程序仅支持5个并发的网络请求 微信小程序官方文档中也提到了,同时打开页面有5个的限制。所以不适合做太深层级页面的交互应用。像腾讯自选股这类深层级页面交互的应用,可以使用动态接口将页面需要的数据进行合并,通过一个接口获取页面所需数据。 4.多个页面代码共用问题 小程序页面与页面之间代码复用性差。当多个页面共用一个js或者json的时候(比如详情页面),需要打包和构建工具的支持(如用webpack)。没有工具就只能自己手工复制,一旦涉及修改的时候,要修改多个页面就比较麻烦了。 5.关于有状态的登录问题 关于登录,目前小程序不支持cookie,而是采用前端利用微信提供的接口获取登录凭证code,server端再用code获取密钥session_key的方式对用户数据完成加密解密,整个过程需要server端对已有的登录体系进行再次封装,而本地的登录态可以利用微信提供的本地存储进行保存。 6.小程序代码包大小优化问题 小程序的开发工具支持简单的模块化,page路径可单独设置,但是提交代码包的大小限制为1M,而小程序没有提供相应的文件压缩与合并。我们可以**压缩,再提交。