几种实用的JavaScript鼠标特效,在我们平时网页设计中,鼠标特效可以说是常常会用到,那么今天我们来讲讲通过JS代码实现一些实用的鼠标特效,希望对大家有用。......
2023-03-17 528 JAVASCRIPT 鼠标
本经验介绍在javascript前端开发中,如何使用Transferable。使用Transferable可以避免和worker线程通讯时的数据复制,提高效率。
首先,在MDN文档可以找到Transferable的介绍。注意到并不是所有的对象都能用Transferable方式传递。ArrayBuffer是可以的。
举一个例子。写一个transferable-worker.js,用于作为演示的worker。其收到主线程的消息后,根据消息填充一个巨大的ArrayBuffer,然后发送到主线程。
第一种发送方式是消息传递,并计时。
第二种发送方式是在第二个参数中给出Transferable列表,同样计时。
在主线程,假设onmessage处理函数的第一个参数是message,则直接访问message.data即可,用不用Transferable都是一样的。
经过测试,可以看到消息传递方式发送了一个120000000字节的数组用时30ms,而Transferable只需要0~1ms
查看两种方式的内存占用(在两个页面内分别使用消息传递3次、Transferable 3次),可以看到使用Transferable时,峰值内存360MB左右,不存在复制;而使用消息传递,则峰值使用了大约两倍内存。
1、首先,在MDN文档可以找到Transferable的介绍。注意到并不是所有的对象都能用Transferable方式传递。ArrayBuffer是可以的。
2、举一个例子。写一个transferable-worker.js,用于作为演示的worker。其收到主线程的消息后,根据消息填充一个巨大的ArrayBuffer,然后发送到主线程。第一种发送方式是消息传递,并计时。
3、第二种发送方式是在第二个参数中给出Transferable列表,同样计时。
4、在主线程,假设onmessage处理函数的第一个参数是message,则直接访问message.data即可,用不用Transferable都是一样的。
5、经过测试,可以看到消息传递方式发送了一个120000000字节的数组用时30ms,而Transferable只需要0~1ms
6、查看两种方式的内存占用(在两个页面内分别使用消息传递3次、Transferable 3次),可以看到使用Transferable时,峰值内存360MB左右,不存在复制;而使用消息传递,则峰值使用了大约两倍内存。
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
标签: JAVASCRIPT
相关文章
几种实用的JavaScript鼠标特效,在我们平时网页设计中,鼠标特效可以说是常常会用到,那么今天我们来讲讲通过JS代码实现一些实用的鼠标特效,希望对大家有用。......
2023-03-17 528 JAVASCRIPT 鼠标
如何开始学习javascript,html是网页的内容,c是网页的格式,h是网站的后台,j是网站的前端,那么如何学习j,才能高效?......
2023-03-17 256 JAVASCRIPT