2012-09-20 11 views
14

muszę zrobić test przepustowości z JavaScript i PHP, używam jQuery i spróbować wszystkich przeglądarek, ale:jQuery ajax wysyłania dużych ilości danych jest powolny w Chrome i Safari

  • Firefox - UP: 7-8 Mbps
  • Explorer 9 - UP: 7-8 Mbps
  • Opera - UP: 7-8 Mbps
  • Safari - UP: czasami 800-900 kbps
  • Chrome - UP: 100-200 kbps lub brak danych

Masz pomysł na zwiększenie wydajności tych przeglądarek lub innej dobrej technologii do pomiaru prędkości?

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

"wzrost tych przeglądarek"? Co chciałbyś zwiększyć? – Jocelyn

+0

oh, przepraszam, zagubione słowo: wydajność – Eleanor

+2

Może problem pochodzi z webkita. Próbujesz korzystać z innych przeglądarek opartych na webkicie? –

Odpowiedz

2

Z mojego osobistego doświadczenia JQuery (a większość webkits) są nadęty i powoduje wiele problemów, ponieważ są one bardziej związane z ponownego wymyślania koła zrobić własną wersję crossbrowser o funkcjonalności niż zapewnić zoptymalizowane rozszerzenie tego, co zostało wykryte jako brakujące. W tym celu istnieje wiele dodatkowych kosztów związanych z tymi webkitami (aka javascript api) z wielu powodów.

Polecam, abyś wypróbował czyste, natywne wywołania AJAX dla javascript, aby zobaczyć, jak wygląda dany performance.

Linki sposób osiągnięcia tego z czystego javascript:

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

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

Powiązane problemy