【发布时间】:2015-11-29 14:30:16
【问题描述】:
我需要每 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>")
}
});
【问题讨论】:
-
我想你可以跳过
matchthis测试并进行替换。 -
要格式化代码块,突出显示代码并单击工具栏中的
{}按钮。另请参阅:stackoverflow.com/editing-help -
为什么需要每半秒运行一次?滞后的不是正则表达式,而是从
replaceWith()重绘的DOM。 -
@RocketHazmat 好吧,这本身就是问题所在,如果我拥有该网站,我可以更轻松地做到这一点,但是我为它开发了一个 Chrome 扩展程序,因此操作起来并不容易。这些帖子是通过转到另一个链接来加载的,比如说您在 example.com/updates/1234 上,然后您单击另一个帖子,该帖子会将您带到 example.com/updates/4321 而无需重新加载页面(大部分时间)
-
@RocketHazmat 检查哪些帖子需要它是
.match()所做的,它不会运行第二部分来替换它,除非某些内容与.match()参数匹配。有没有更有效的方法来做到这一点?
标签: javascript jquery regex