14

javascript と php で帯域幅テストを行う必要があり、jQuery を使用し、すべてのブラウザーを試しますが、次のようになります。

  • Firefox - アップ: 7-8 Mbps
  • Explorer 9 - アップ: 7-8 Mbps
  • Opera - アップ: 7-8 Mbps
  • Safari - アップ: 時々 800-900 kbps
  • Chrome - アップ: 100-200 kbps またはデータなし

これらのブラウザーのパフォーマンスを向上させたり、速度を測定するための他の優れたテクノロジを使用したりするアイデアはありますか?

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{ ...
4

1 に答える 1

2

私の個人的な経験からすると、JQuery (およびほとんどの Webkit) は肥大化しており、多くの問題を引き起こしています。これは、検出されたものの最適化された拡張機能を提供することよりも、機能の独自のクロスブラウザー バージョンを作成するためにホイールを再発明することに関心があるためです。ない。そのために、これらの Webkit (別名、javascript API) が作成する多くの余分なオーバーヘッドが、さまざまな理由で発生します。

純粋な JavaScript ネイティブ AJAX 呼び出しを試して、パフォーマンスがどのようなものかを確認することをお勧めします。

Links how to accomplish this with pure javascript:

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

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

于 2012-09-23T02:14:37.383 に答える