微信小程序性能不行怎么优化

  不管你是已经玩了一晚上小程序,还是刚刚起床打开电梯看到这篇文章,你都应该知道关于小程序最重要的一件事:简单到没有套路可言。所以不废话,直接上正文:

  互联网上的资讯召之即来,挥之即找不到,所以浏览器有书签、微信有收藏功能;PC 上的程序挥之也不走,因为操作系统卸载功能本就藏得深,打开卸载程序后再遭遇各种卸载障碍,有的不惜扯出张哭脸勾动你的恻隐之情;智能手机上的程序则是召之即来,不忍挥之而去,谁知道哪天突然又要用到某个应用,也就留在了手机上——尽管 16GB 的手机内存空间已不足……

  但小程序是即用即抛的。

  你在微信里打开了一个小程序,用完里面的功能退出即可,它不占据你的微信聊天界面,也不占用手机存储空间。本质上,它是一个具备功能的网页而已。但用完即抛的小程序,也会出现在微信底栏“发现”里的“小程序”菜单里(里面的小程序列表支持左划删除)。

  没有入口,有好有坏

  被誉,以及偶尔自诩为当代乔布斯的张小龙曾经说,小程序没有入口。等等,上一段不是刚刚说了有入口吗?

  张小龙口中的”入口“,其实是敝互联网行业的一个术语。不给小程序入口,其实说的是不给小程序一个“应用商店”和“搜索引擎”式的,能够导入用户流量的方式。尽管在底栏“发现”的“小程序”里面,你能找到自己用过的所有小程序,但你几乎没有可能发现新的小程序。

  这是因为小程序有一个搜索栏,但它不支持模糊搜索。举个例子:你发现小程序很有意思,想看看有没有能替代日历的小程序,就搜索“日历”,却发现搜不到任何结果。除非知道某个特定的小程序的准确全名,否则是绝对搜不到的,至少在今天不行。从这一点上,微信的确没有给小程序以“入口”。(后文中对这个设定还有详细分析)

  这有好有坏。从用户的角度,如果你真的很喜欢简单一点,不要任何不智能的所谓“智能小程序推荐”之类的小程序商城,这个设定正和你意;坏处在于发现和找到你需要的新小程序太难了。

  从小程序开发者的角度,好处是小程序没有那么多应用商城或者搜索引擎的推广套路,做得好的小程序自然会有人用,做得不好的用户可以删掉,那就真的在用户的微信里完全消失了;坏处是就算你的小程序做得好,还是得想办法先把它推广出去……在小程序上线的第一天,就我的经验来讲,昨晚获取小程序的主要途径是 1)互联网公司朋友发来或群里分享;2)第三方小程序榜单/商城——没有一个是在搜索里找到的。

  小程序很强大,但并非所有服务都适合开发成小程序。对于用户来说值得删掉单独应用、改用小程序的,对于开发者来说适合开发成小程序的,是以下这些服务

  1)使用频率低,即用即抛的服务。一般来说可能是工具,比如计算器、经期纪录、机票火车票预订,或者不常逛的电商网站。

  2)比较常用但完全没必要装一个单独应用的服务。比如打车和订餐软件,以滴滴出行和大众点评为例,过去本来就可以在微信/里嵌套网页,现在变成小程序了,换汤不换药。

  3)对现有公众号/服务号有更多期待却得不到满足的机构。公众号和服务号的基础交互模式是对话,但对话不是万能的。比如媒体,在公众号上能做到的是日常文章推送、关键词自动回复、热门文章自动抓取等等,但如果新的内容形式不限于图文和视频,需要更多的交互,公众号满足不了的,小程序或许可以胜任。

  当然,种类绝对不限于此。简单来说,如果你手机上有很久都没打开,但又觉得有可能会用到不想删的应用——绝对适合变成小程序。

  现在都有什么小程序了?

  开发者很踊跃。第一天上线的几个小时里,我已经看到了快一百个小程序。

  有不少是把大家很熟悉的互动网页(俗称 H5)做成了小程序,比如“词汇量测试”;也有干脆就把整个移动端网站套了进来,比如“美的商城”;一些电商和 O2O 服务则简化了移动端网站的逻辑,比如“大众点评”只放了一个所在地区的商家列表,“购物”只放了搜索和用户资料两个菜单。

  有一些不错的工具类小程序,比如“南航e行”、“朝夕日历Pro”、“美柚App”,以及阅读类小程序,比如“轻芒杂志”和“好奇心日报”。(提醒一下轻芒的同学们:算上小程序,你们已经在手机上开发了三个软件了,该适可而止了。)

  截至现在还没有看到特别垃圾的小程序……说明负责上线审核的团队还是比较严格的。

  也有一些比较开脑洞的:比如 GitHub 上有一个基于微信小程序开发的仿微信 demo,基本上是在微信小程序里又套了一个微信……现在完成度不高,但逻辑已经非常清楚,基本的框架已经有了。只是,估计这个小程序是不可能上线的,否则就可以一个应用双开微信了……

  小程序的分享,无论分享动作的对象是小程序本身,还是小程序里的一个页面,都只能分享到微信的聊天中,既不能分享到朋友圈,不能分享到第三方软件,比如电子邮件、第三方聊天软件和笔记工具等里面。

  这是张小龙有意为之,但还是很不习惯。

  另外,不同小程序的分享路径也不一样:有的点右上角三点菜单即可分享,有的则需要回到小程序资料页才可以。:

  2)不支持模糊搜索

  但不是所有的小程序都不支持。比如搜索“购物”什么都搜不到,但搜索“京东”却能找到【京东购物】的小程序;再比如,搜索“日历”、搜索“朝夕”什么都找不到,但明明有一个日历小程序叫【朝夕日历Pro】。

  当然,小程序内部内容的搜索就更不用想了。

  所以你猜,会不会是系的才能搜得到?

  3)小程序关不掉。

  你可以关掉朋友圈、关掉附近的人、关掉微信运动,但你关不掉小程序。

}

最近也开发了两个小程序,在开发的过程中,总结一些优化心得

  1. 理解wx:if和hidden,并合理利用,官方文档中并没有明确说出hidden如何使用,要不是wx:if文档中提到,经常切换显示和隐藏的节点建议使用hidden,我都不知道还有这个属性。wx:if每次在显示的时候会重绘,而hidden不会。在我开发的项目中,有一个自定义的TabBar,使用hidden和wx:if会有明显的差异。

  2. Input状态下隐藏input,应预留出键盘收起的时间,具体情况类似下图当点击页面中的取消按钮,页面输入框和mask会消失,因为输入框会消失,引起键盘收起。此时页面会有明显的抖动重绘。我的解决办法是点击取消后,先让键盘消失(大约500ms),再去隐藏input,体验会好很多

  3. 小程序对用户内存使用进行了限制,如果一个页面的图片过多,会导致内存不足的内部错误,导致应用直接崩溃。解决方法,懒加载

  4. 图片预加载,在浏览器中常用的预加载方法,创建隐藏的image标签,在其他动态的image中如过同时使用此图片,微信会从缓存中读。

遇到这个问题的原因是,我习惯在onLoad函数中处理当前页面的所有异步请求和数据,所以习惯性的在所有页面的onLoad函数中都写上了loading,但是有一个页面中,并没有请求,而且从storage中读的数据。在IOS下,没什么问题,但在安卓下,loading不会消失。

有很多在Page对象生命周期上加预加载方法的,做接口预加载,但我认为这并不是一个好的优化点,可以在某几个高频页面尝试做,大范围的应用就实在不好了,随时可能被微信咔嚓

常规的一些优化手段,比如压缩代码,合并雪碧图也都是可以使用的。但在有些情况下,比如特别常用的小图标(自定义tabbar上的图标),建议用base64写在CSS中,虽然base64解析慢,但比网络加载图片要快的多。

合理利用各种优化手段,提升小程序体验。你一定会问,什么是合理那?这个只有自己拿捏了,没有思考和实践,查来看去也只能学会一些常规优化套路。要想做深度优化,必然要对业务场景和逻辑有深入理解。

}

微信公众平台发布公告称,“小程序“新增了分享、扫一扫等五个功能。

据悉,新增的5个功能为:

此外,微信“小程序”还优化和修复了100多个功能点,比如大幅增强的地图能力。

腾讯高级副总裁、微信之父张小龙早前在朋友圈揭示了其对于“小程序”的想法:“ 什么是小程序:小程序是一种不需要下载安装即可使用的应用,它实现了应用‘触手可及’的梦想,用户扫一扫或者搜一下即可打开应用。也体现了‘用完即走’的理念,用户不用关心是否安装太多应用的问题。应用将无处不在,随时可用,但又无需安装卸载。”

而据媒体报道,腾讯董事会主席兼CEO马化腾日前在演讲中透露,“小程序”将在春节前推出。

应用中心 新浪公益 新浪游戏 互动活动 热点推荐

从2012年以来,我们的劳动年龄人口减少了1500万人。

刘士余骂得对,骂得好,他早点当证监会主席会更好。

海外风险或许是影响明年中国经济运行的最大不确定所在。

}

我要回帖

更多关于 微信小程序性能不行 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信