Chciałbym prosić, abyś znalazł punkt, dlaczego strona, nad którą pracuję, jest wolna.Jak to jest możliwe, że ajaxing jest znacznie wolniejszy w Chrome i IE niż Mozilla?
warunki problemu:
- duża liczba wierszy (. Więc myślę, że być może problem jest związany z tym)
- jest ajaxing zdarzenie (mam zmęczony, aby skomentować to i problem zniknął)
- używając Mozilla (nie ten efekt zamrożenia pojawiają się w IE i Chrome)
opis problemu (patrz zdjęcie):
- zmienić wartość wejścia
- gdy istnieje połączenie AJAX (w celu obliczenia nagroda) i trwa w FF około 30 ms w przeciwnym razie więcej niż 1 s
- jest zamrożenie, aż zakończył ajax (ale ajax nie jest ustawiony na async: false)
- dopiero potem mogę zmienić następnego wejścia
mam zmęczony, aby odtworzyć błąd, ale could't. Więc zobaczyć oryginalną stronę:
strony: foto/fotokidolgozas/elohivas-beallitasok.php
zalogować się i przejść: [email protected]
Aktualizacja: Działa teraz w porządku, sztuczka jest następująca:
Używam ukrytych pól wejściowych, ich wartości to ciągi json_encode-d. Mogę je przetworzyć w dowolnym momencie za pomocą js.
Dziękuję za wszelką pomoc!
Kod:
$('#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() });
});
Opublikuj odpowiedni kod w pytaniu. –
Nie mam różnicy między FF14b, IE9, Chrome19 w moim systemie. Czas wykonania żądania (z kart Network w DevTools) i wizualnie - wszystko jest równe. –
Mam ten sam problem z jednym z moich skryptów, używając Komety z Ajaxem: jeden agent Chrome jest zamrożony, a inny (po wyjęciu z pudełka) nie. –