domingo, septiembre 29, 2013

Warning: Unresponsive script en JQGrid

Esta vez traigo un escenario de un problema con Internet explorer y Mozilla Firefox que ocasionaba jqgrid en la version 4.5.2, buscando en la red no encontraba la solución pues al parecer yo era el único desarrollador que le pasaba esto. El escenario era muy sencillo yo tenia un grid  que muestra información pero solo queria limitar la infromacion que solo mostrara 25 registros.






Después de estos eliminaría la ultima fila, esto funcionaba excelente hasta que al hace el test en Firefox e Internet Explorer me retornaba un mensaje diciéndome " Warning : Unresponsive script" y empezaba a poner lento mi equipo(en ejemplo el div tiene 125948px)



Analizando mi aplicación mi buen amigo @mariof4 me decía que un div era el responsable de este error pues un div crecía confirme insertaba nuevos elementos si tener el control de este

Entonces para solucionar el problema me di a la tarea de que este div siempre permaneciera en el tamaño original 200px colocando el siguiente codigo

$("#gview_msj .ui-jqgrid-bdiv>div").attr('style','height:360px;');
 
Ya que por alguna extraña razón el método de insert (addRowData) me modifcaba el tamaño del div haciendo que este no se controlara.

Una opción mas que yo hice test que no utilizara el metodo (addRowData) es decir no utilizar


$("#msj").jqGrid('addRowData','myrowid', data, 'first');

utilice la forma artezanal haciendo esto:


  $("#msj > tbody > tr:first").before("<tr tabindex=\"-1\" class=\"ui-widget-content jqgrow ui-row-ltr\">" +
    "<td>"+contador+"</td>" +"<td>mensaje</td>" +"<td>"+shora+"</td>" +"</tr>");

y tambien funciono

de cualquier manera esta fue nuestra solución si hay otra mejor siempre sera bienvenida , por el momento es todo ahí dejo el codigo de ejemplo






No hay comentarios.:

Publicar un comentario