QWebView:执行 JS 时滞后

QWebView: lags when executing JS

本文关键字:滞后 JS 执行 QWebView      更新时间:2023-09-26

我正在为社交网络编写信使。这就是它的工作原理:

  1. 使用 API 获取对话框列表
  2. 获取有关用户的信息(名称、头像)
  3. 在QWebView中显示。

下面是一些代码:

void Messenger::loadedMoreDialogs() {
    QString javascript;
    javascript += "html = '"" + dialogsHtml + "'";";
    javascript += "$('#dialogList').append(html);";
    javascript += "$('#name').html('" + name + "');";
    javascript += "$('#surname').html('" + surname + "');";
    javascript += "$('#loading').hide(200);";
    for (int i = 0; i < usersInfo.count; i++) {
        javascript += QString("$('#owner") + QString::number(usersInfo.list[i].id) + QString("').html('") + usersInfo.list[i].name + QString(" ") + usersInfo.list[i].surname + QString("');");
        javascript += QString("$('#avatar_dialog") + QString::number(usersInfo.list[i].id) + QString("').prop('src', '") + usersInfo.list[i].avatar_50 + QString("');");
    }
    javascript += "$('img[chat='"1'"]').replaceWith($('<div class='"confAvatar'"> </div>'));";
    browser->page()->mainFrame()->evaluateJavaScript(javascript);
}

因此,当我执行 JS(在函数的最后一行)时,浏览器在 ~1 秒内冻结。

好的伙计们,问题解决了。是JQuery。我刚刚删除了它。现在没有滞后。