我有一个react native应用,该应用具有一个使用pubnub作为后端的聊天界面。
按下发送按钮时,清除输入要很长时间,并且消息会显示在Feed中。
按下发送按钮时会发生一些事情:
''
@observable []
存储在mobx中我确定对消息进行签名是使事情变慢的原因。
使用https://github.com/kjur/jsrsasign
在JS中进行签名和验证根据我对线程的了解,听起来这可能阻止了JS线程在消息数组更新时告诉UI线程更新。
我想出了一些可能的解决方案,并且想知道什么是最好的方法
在执行消息签名和发送的代码周围添加setTimeout
。我认为这不是有效的解决方案,但确实允许Feed进行更新。
在Objective-c / java中进行签名,然后将签名后的消息发送回JS以发送到pubnub。
这完全有帮助吗?我以为它可能运行得更快,或者至少释放了JS线程,但是如果它在UI线程上运行,那还会导致延迟吗?
如何创建另一个代码运行代码呢?
使用WebView
执行JS:https://medium.com/@inkdrop/a-simple-way-to-run-js-in-background-thread-on-react-native-8fff345576da
我不愿意使用这种方法。我应该担心吗?
我不是在寻找一种快速/简便的方法来完成此任务(如果它牺牲了任何东西)。可靠性,安全性...
使用此库:https://github.com/joltup/react-native-threads-我在这里关注的是:“使用此库的主要折衷是内存使用,因为创建新的JS进程会产生大量开销。”
还有其他想法吗?