Me gustaría pedirle que encuentre el punto, por qué el sitio -en el que estoy trabajando- es lento.¿Cómo es posible que ajaxing sea mucho más lento en Chrome e IE que en Mozilla?
las condiciones del problema:
- gran número de filas (. Así que creo que tal vez el problema está relacionado con este)
- hay ajaxing evento (Me he cansado de comentar hacia fuera y el problema desaparecieron)
- usando Mozilla no (este efecto congelación aparecen en el IE y Chrome)
descripción del problema (ver la imagen):
- I cambiar el valor de entrada
- después hay una llamada ajax (con el fin de calcular premio) y se tarda en FF unos 30 ms de otro modo más de 1 s
- hay una congelación hasta el Ajax terminó (pero Ajax no está establecido en asíncrono: falso)
- sólo después de que se puede cambiar la siguiente entrada
me tienen cansado para reproducir el error, pero podría't. Así que ver el sitio original:
sitio: foto/fotokidolgozas/elohivas-beallitasok.php
Acceder y pasar: [email protected]
actualización: Funciona ahora bien, el truco es el siguiente:
Uso los campos de entrada ocultos, sus valores son cadenas json_encode-d. Puedo procesarlos en cualquier momento con js.
Gracias por cualquier ayuda!
Código:
$('#cikkek,#magic_bar').on("change","select,textarea,input[type!=hidden]",function(event_object){
if($(this).attr('name') == "kijelolve" && !$(this).parents('#magic_bar').length)return true;
var cikk_id = $(this).parents('.cikk').attr('id');
var cikk_tipus = $("input[name=cikk_tipus]").val();
var tulajdonsag = $(this).attr('name');
var ertek = $(this).val();
if(ertek == "-1")return false;
if($(this).is('[type=checkbox]'))ertek = $(this).prop("checked")?'1':'0';
if(cikk_tipus=='fotokidolgozas' && (tulajdonsag=='meret'||tulajdonsag=='vagas'))
{
var sor = $(event_object.target).parents('.cikk');
var act_meret = sor.find('select[name=meret]').val();
var act_fill = sor.find('select[name=vagas]').val();
var act_zold_class = sor.find("input[name=zold_"+act_meret+"]").val()=="1" ?"zold":"feher" ;
var name = "src_"+act_meret+"_"+act_fill;
var name2 = "szoveges_uzenet_"+act_meret+"_"+act_fill;
sor.find(".img_cont").find("img").attr("src",sor.find("input[name="+name+"]").val());
sor.find(".szoveges_uzenet").text(sor.find("input[name="+name2+"]").val());
sor.find(".dpi_megfelel").text(sor.find("input[name=minoseg_"+act_meret+"]").val()+" ("+sor.find("input[name=dpi_"+act_meret+"]").val()+" dpi)");
sor.find("select[name=meret]").removeClass("feher zold").addClass(act_zold_class);
}
var before = now();
//this is the ajax part
if(ajax_modositaskor)
$.post('/_fn/cikk/mod.php',{
'cikk_tipus':cikk_tipus,
'cikk_id':cikk_id,
'tulajdonsag':tulajdonsag,
'ertek':ertek
},function(a){
var elapsed = now() - before;
if(a[0]!="1")
{
//error
alert(a[0]);
return;
}
if(a[1]!="-1")
{
//there is new price
$(event_object.target).parents('.cikk').find('.ar').text(a[1]);
}
if(a[2]!="-1")$('#cikkek_ara').text(a[2]);
osszegzest_frissit(a[3]);
var php_time = Math.round(a[4])
a_min = Math.min(a_min,elapsed);
p_min = Math.min(p_min,parseFloat(php_time));
a_max = Math.max(a_max,elapsed);
p_max = Math.max(p_max,parseFloat(php_time));
if(!a_avg)a_avg = elapsed;else a_avg= Math.round((a_avg+elapsed)/2);
if(!p_avg)p_avg = php_time;else p_avg = Math.round((p_avg+php_time)/2);
trace("ajax="+elapsed+"\tphp="+php_time+"\tajax_min="+a_min+"\tphp_min="+p_min+"\tajax_max="+a_max+" \tphp_max="+p_max+"\tajax_avg="+a_avg+" \tphp_avg="+p_avg);
},"json").error(function() { postHiba() });
});
Publique el código correspondiente en la pregunta. –
No tengo diferencias entre FF14b, IE9, Chrome19 en mi sistema. Tiempo de ejecución de la solicitud (desde pestañas de Red en DevTools) y visualmente - todos iguales. –
Tengo el mismo problema con uno de mis scripts, usando Comet con Ajax: un agente de Chrome está congelado, y otro (fuera de la caja) no lo está. –