QWebView:执行JS时滞后

时间:2014-11-22 11:42:23

标签: javascript qt qwebview

我正在为社交网络写信使。 它是如何运作的:

  1. 使用API​​获取对话框列表
  2. 获取有关用户的信息(名称,头像)
  3. 在QWebView中显示。
  4. 以下是一些代码:

    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秒后冻结。

1 个答案:

答案 0 :(得分:0)

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