jueves, 23 de abril de 2015

Solución: Ejecución lenta de evaluateJavaScript()

Si cuando intentas ejecutar el método evaluateJavaScript() el método hace que todo se cuelgue por unos momentos es porque el sistema esta evaluando el valor de retorno de la ultima instrucción de javascript e intentando convertirla a un tipo de dato QVariant. Esto ocasiona un costo alto cuando usas jQuery. Puesto que este retorna un objeto de jQuery que luego debe ser evaluado enteramente por Qt lo cual consume mucho tiempo de procesador.

La solución es hacer que la ultima instrucción sea un valor nulo

myWebElement->evaluateJavaScript( myScript + "; null" );
Yo por ejemplo utilizo este método para cargar jQuery en la pag
void BrowserWindow::loadJQuery()
{
  QFile file("jquery.min.js");
  file.open(QFile::ReadOnly);
  weView()->page()->mainFrame()->evaluateJavaScript(file.readAll()+";null");
}

No hay comentarios:

Publicar un comentario