2012-09-20 19 views
14

Tengo que hacer una prueba de ancho de banda con javascript y php, utilizo jQuery, y tratar todos los navegadores, pero:jQuery ajax publicación de datos de gran tamaño es lento en Chrome y Safari

  • Firefox - UP: 7-8 mbps
  • Explorer 9 - UP: 7-8 mbps
  • Opera - UP: 7-8 mbps
  • Safari - UP: 800-900 kbps veces
  • Chrome - UP: 100-200 kbps o no hay datos

¿Tiene alguna idea de aumentar el rendimiento de estos navegadores u otra buena tecnología para medir la velocidad?

sendFile: function (s, d, m){ // size, data, metric 
    m++; // how many times I tried to post data 
    console.log('m: '+m); 
    time = new Date(); 
    endTime3=time.getTime(); // execute time start 
    if(s<=65536){ 
     $.ajax({ 
      type : 'POST', 
      url : '/vegpont/savszelesseg/', 
      timeout: 30000, 
      dataType: 'text', 
      cache: false, 
      data: { 
       index : 3, 
       text: d // large data, min 512 KB to 
      }, 
      success : function(data){ 
       console.log('kB: '+s); 
       time = new Date(); 
       endTime4=time.getTime(); // execute time end 
       console.log('sec: '+(endTime4-endTime3)/1000); 
       if(((endTime4-endTime3)/1000)<sec){ // sec now equals 4 
        speedTest.createFile(s*2, m); // create a data which is 's' (aka size) large then call this sendfile method 
       }else{ 
        var delta=(endTime4-endTime3)/1000; 
        var res=Math.round(s/delta); 
        $('div#speedResult3').html('<b>UP:</b><br/>kB: '+s+', '+ 
        'sec: '+delta+'<br/>' + 
        '<b>~ '+res*8+' kbps</b>'); 
        $('div#speedResult3').slideDown(1000); 
        $('div.buttonContainer').unblock(); 
       } 

      }, 
      error : function(XMLHttpRequest, textStatus, errorThrown) { 
       if(textStatus=='timeout'){ 
        if(m>10){ 
         $('div#speedResult3').html('<b>UP:</b><br/>sikertelen mérés'); 
         $('div#speedResult3').slideDown(1000); 
         $('div.buttonContainer').unblock(); 
        } 
        else{ 
         speedTest.createFile(s, m); // create a data which is 's' (aka size) large then call this sendfile method 
        } 
       } 
      } 
     }); 
    }else{ ... 
+0

"aumentar estos navegadores"? ¿Qué te gustaría aumentar? – Jocelyn

+0

oh, lo siento, palabra perdida: rendimiento – Eleanor

+2

Tal vez el problema proviene de webkit. ¿Lo intentas con otros navegadores basados ​​en webkit? –

Respuesta

2

Desde mi experiencia personal jQuery (y la mayoría de webkits) son hinchado y provoca una multitud de problemas, ya que están más preocupados por reinventar la rueda para hacer su propia versión crossbrowser de una funcionalidad que para proporcionar una óptima extensión de lo que se ha detectado que falta. Con ese fin, hay una gran cantidad adicional de recursos que estos webkits (alias, las api de javascript) crean por una multitud de razones.

Te recomiendo que pruebes las llamadas nativas de AJAX nativas de JavaScript para ver cómo es el rendimiento.

Enlaces cómo lograr esto con javascript puro:

http://www.javascriptkit.com/dhtmltutors/ajaxgetpost.shtml

http://www.openjs.com/articles/ajax_xmlhttp_using_post.php

Cuestiones relacionadas