我正在使用该函数replaceStr()
替换正文标记中的一些字符串。如果 html 页面很小,则替换不明显。但是如果 html 页面更大更复杂,你会注意到它。替换正在阻止浏览器。我的问题,如何使替换非阻塞?替换对页面并不重要,因此它可以在浏览器不忙时在后台发生。我尝试使用async和await,但我认为该replaceWith()
函数无法处理 Promises,这就是它不能与async/await一起使用的原因。但是你怎么能做到呢?
function replaceStr(myStrArr) {
const container = $('body :not(script)');
myStrArr.map((mystr) => {
container
.contents()
.filter((_, i) => {
return i.nodeType === 3 && i.nodeValue.match(mystr.reg);
})
.replaceWith(function () {
return this.nodeValue.replace(mystr.reg, mystr.newStr);
});
});
}
感谢您的帮助。