微信小程序开发需要注意的一些规范

栏目: IOS · Android · 发布时间: 5年前

内容简介:出现 JavaScript 异常可能导致小程序的交互无法进行下去,我们应当追求零异常,保证小程序的高鲁棒性和高可用性,相信这一点一般情况下都不会出现,需要注意的是代码测试中多场景的试错。图片太大会增加下载时间和内存的消耗,应根据显示区域大小合理控制图片大小。 一般情况下图片较大的,我们应该都会选择直接放在服务器上,直接拿到地址,但是官方说这样读取的图片:请求失败可能导致小程序的交互无法进行下去,应当保证所有请求都能成功。然而,请求成功只是第一步,还可能存在的问题就是请求的耗时太长、存在短时间内发起太多的请求

出现 JavaScript 异常可能导致小程序的交互无法进行下去,我们应当追求零异常,保证小程序的高鲁棒性和高可用性,相信这一点一般情况下都不会出现,需要注意的是代码测试中多场景的试错。

2.合理控制图片的大小

图片太大会增加下载时间和内存的消耗,应根据显示区域大小合理控制图片大小。 一般情况下图片较大的,我们应该都会选择直接放在服务器上,直接拿到地址,但是官方说这样读取的图片: 存在网络图片资源未开启 HTTP 缓存控制 ,这是个什么意思,我也未完全弄懂。

3.小程序所有请求应响应正常

请求失败可能导致小程序的交互无法进行下去,应当保证所有请求都能成功。然而,请求成功只是第一步,还可能存在的问题就是请求的耗时太长、存在短时间内发起太多的请求这样的情况,一方面是后台人员的接口写的烂,一方面就是需求使然(技术半吊子,还想安全的产品经理会有这种让你去指定地方请求的情况),比如在阿里云OSS存储的一些json数据。。。。

4.避免setData的数据过大且避免setData的调用过于频繁。

由于小程序运行逻辑线程与渲染线程之上,setData的调用会把数据从逻辑层传到渲染层,数据太大会增加通信时间. setData接口的调用涉及逻辑层与渲染层间的线程通过,通信过于频繁可能导致处理队列阻塞,界面渲染不及时而导致卡顿,应避免无用的频繁调用.

5.避免将未绑定在 WXML 的变量传入 setData

setData操作会引起框架处理一些渲染界面相关的工作,一个未绑定的变量意味着与界面渲染无关,传入setData会造成不必要的性能消耗。 这一条我想是很多开发人员在初次接触小程序开发的时候都会犯的一个错误吧。因为刚开始的时候由于这种setData的语法,让我们忘了还有全局变量的使用,于是会经常出现使用Page中定义的data做中间过渡。

6.wxss 覆盖率较高,较少或没有引入未被使用的样式

我们应该按需引入 wxss 资源,如果小程序中存在大量未使用的样式,会增加小程序包体积大小,从而在一定程度上影响加载速度。 这个也是比较常见的一种不规范,写了很多CSS样式,很多不用的就留来了代码里面,越来越多,所以在编写代码过程中,尽量去对每一行代码(特别是自己写的)了如指掌。

7.避免首屏时间太长的情况

首屏时间是指用户开始看到第一屏的内容的时间,首屏时间太长会导致用户长时间看到的都是白屏,会一直等待有意义的内容展示出来。出现这一情况,应仔细检查这个过程都有哪个操作,一般来说,可能是请求数据的时间太长,或者是一次渲染的数据太大导致渲染时间太长。

这些东西是我感觉比较常见且容易修改的,其它还存在一些规范,不妨打开微信开发者工具,点击 Audits ,对你写的代码进行一个测试,测试结果会让你很好的处理自己的代码。That's really cool!


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Linux内核设计与实现(原书第3版)

Linux内核设计与实现(原书第3版)

Robert Love / 陈莉君、康华 / 机械工业出版社华章公司 / 2011-4-30 / 69.00元

《Linux内核设计与实现(原书第3版)》详细描述了Linux内核的设计与实现。内核代码的编写者、开发者以及程序开发人员都可以通过阅读本书受益,他们可以更好理解操作系统原理,并将其应用在自己的编码中以提高效率和生产率。 《Linux内核设计与实现(原书第3版)》详细描述了Linux内核的主要子系统和特点,包括Linux内核的设计、实现和接口。从理论到实践涵盖了Linux内核的方方面面,可以满......一起来看看 《Linux内核设计与实现(原书第3版)》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

MD5 加密
MD5 加密

MD5 加密工具

SHA 加密
SHA 加密

SHA 加密工具