小程序什么时候能支持真正意义的多线程?
发布于 7 年前 作者 liping 613 次浏览 来自 问答

现在小程序的双线程结构(逻辑层+界面层)在频繁的网络交互场景中会引起页面响应的“抖动”。

一个想法是把这些与网络交互的逻辑放在一个单独的线程,这样逻辑层就能专注于服务界面层的响应,达到极速的用户体验。可惜,当下小程序的多线程(worker)并不是真正意义上的多线程:worker不能调用wx的API,非常鸡肋。

我想问官方是否有另一种方法或者计划支持创造一个真正意义的线程?为了控制滥用,可以限制一个小程序能创造此类线程的数量。

1 回复

在频繁的网络交互场景中会引起页面响应的“抖动” —— 这个应该是因为网络请求先后到达,引起页面结构多次发生变化导致。请考虑等所有网络请求都到达之后再一次性改变页面,或者给页面暂时缺少网络数据的部分填充占位符来提升用户体验。

Worker 主要用于大运算量的计算,如果有运算密集的逻辑,请考虑放在 worker 中。其他情况下一般不需要用到 worker 。

在小程序中,和页面变更相关的逻辑不能分配到多个线程中。网络请求可以通过主线程代理到 worker 中,但对于这样的 io 操作,几乎没有优化。

回到顶部