gpt4 book ai didi

javascript - 有没有更好和/或更快的方法来执行这个正则表达式?

转载 作者:行者123 更新时间:2023-12-01 05:38:34 30 4
gpt4 key购买 nike

我需要每 500 毫秒运行一次此命令,但运行一次就足以滞后。是否有解决方案可以提高性能,同时函数仍然做同样的事情?

$('#current-update > div.update-content > ol:nth-child(4) > li > div.info > p').each(function() {
var matchthis = $(this).text().match(/\*(.*?)\*/g);
if (matchthis) {
var replacethis = $(this).html().replace(/\*(.*?)\*/g, "<strong>$1</strong>")
$(this).replaceWith('<p data-bind="html: parsedBody" class="body">' + replacethis + "</p>")
}
});

最佳答案

由于正则表达式,它并不慢。它很慢,因为在代码中的某个地方,我怀疑这些段落标签每 500 毫秒动态更新一次,其中包含注释,然后您将逐一迭代它们以更改值。

关于操作 dom 的第一条规则 - 一次不要多次操作 dom。由于新涌入的 Angular、bootstrap、buildscript、数据绑定(bind)、jquery 开发人员尚未了解流畅 Web 交互的重要性,这一点经常被忽视。

每次使用 jquery 选择器读取 dom 时 - $('#getThis') 都会花费渲染时间。每次在 dom 上渲染某些内容时 - $('#getThis').html('add this') 都会花费渲染时间。在迭代中组合这两个操作会成倍增加这一点,特别是如果您在计时器上执行此操作。

现在你得到的结果很慢,不是因为正则表达式,而是因为多个 dom 操作,以及在每次迭代时重新读取 dom。

重新思考您的架构。它不会比这更快,除非你读取整个 html block ,使用正则表达式迭代字符串,然后一次性写入 dom。

祝你好运

关于javascript - 有没有更好和/或更快的方法来执行这个正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32380982/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com