使用异步函数或 Web Workers
异步函数是一种可以在不阻塞 UI 线程的情况下执行长时间运行的操作的函数。以下是一个使用异步函数的示例:
async function heavyComputation() {
// 在这里处理重型计算
}
async function handleClick() {
// 触发异步函数,但不会阻塞 UI 线程
await heavyComputation();
// 计算完成后执行其他操作
}
Web Workers 是一种在后台线程中执行计算密集型任务的方法。以下是一个使用 Web Workers 的示例:
const worker = new Worker('worker.js');
function handleClick() {
// 向 Web Worker 发送消息
worker.postMessage(/* 传递给 Web Worker 的数据 */);
}
// 监听从 Web Worker 返回的消息
worker.onmessage = function(event) {
// 处理 Web Worker 返回的数据
};
// worker.js 文件中的代码
self.onmessage = function(event) {
// 在这里处理重型计算
// 将结果作为消息返回
self.postMessage(/* 计算结果 */);
};
以上两种方法都能在执行计算密集型任务时避免阻塞 UI 线程,但需要根据具体情况选择合适的方法。
上一篇:不阻塞地原子读取n个字节
下一篇:不足数据时的自动缩放