[webkit-qt] how to optimizing this code

周鹏 zhoupeng19 at 126.com
Wed Mar 16 05:49:32 PDT 2011


Hi, all! 
     This is my code(get content of dynamic page,load page from local file system,include all of the resource, and ouput )

class Nam: public QNetworkAccessManager 
{
    Q_OBJECT
protected:
    virtual QNetworkReply* createRequest(Operation op, const QNetworkRequest & req, QIODevice * outgoingData = 0) 
    {
        QString path;
        ......//convert the url of req to the path of the resource in the local file system
        QNetworkRequest newReq(req);
        QUrl url(path);
        newReq.setUrl(url);
        return QNetworkAccessManager::createRequest(op, newReq, outgoingData);
    }
};
class WebCapture : public QObject
{
    Q_OBJECT
public:
    WebCapture();
    void get(); 
signals:
    void finished();
private slots:
    void saveResult(bool ok); 
private:
    Nam nam;
    QWebPage m_page;
};
WebCapture::WebCapture(): QObject()
{
    m_page.setNetworkAccessManager(&nam);
    connect(&m_page, SIGNAL(loadFinished(bool)), this, SLOT(saveResult(bool))); 
} 
void WebCapture::get()
{ 
    QString content;
     ......//read html code from local file system
     QUrl url("http://blog.people.com.cn");//base url of the page
     m_page.mainFrame()->setHtml(content, url);
     return ;
}
void WebCapture::saveResult(bool ok)
{
    if (!ok) 
    {
        emit finished(); 
        return; 
    }
    qDebug() << m_page.mainFrame()->toHtml();
    emit finished();
}
int main(int argc, char* argv[])
{
    QApplication a(argc, argv);
     WebCapture wc;
     QObject::connect(&wc, SIGNAL(finished()), QApplication::instance, SLOT(quit()));
     wc.get;
     return a.exec();
}
In average,parse a page need 140ms, but 130ms is spend on a.exec(),so, i have two question:
1) Is there any way to avoid call QApplication::exec(),because it's time-consuming.
2) When i call a.exec(), does the rendering progress is called??I don't need to layout this page.

        Zhou Peng
        zhoupeng19 at 126.com 
          2011-03-16 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-qt/attachments/20110316/9b1b74c7/attachment.html>


More information about the webkit-qt mailing list