0

次のコードは常に誤った結果を出します。私は2つの数値変数を比較していると思います。そうではないですか?

var request; var getfilesize; var maxdisplaysize=2097152;
    request = $.ajax({
    type: "HEAD",
    url: getfile,
    success: function () {
      getfilesize = request.getResponseHeader("Content-Length");
      console.log("Size is" + getfilesize+'xxx');
    }
    });
    parseInt( getfilesize, 10 );
if ( getfilesize < maxdisplaysize ) {
    $("#displayfile").load(getfile);
    console.log('file size less then 2mb 2097152bytes');
} else {
    $("#displayfile").append('<p>sorry large file<p>');
}

なぜif条件が常にfalseと評価されているのですか?

4

1 に答える 1

5

結果に対して何もしないため、への呼び出しparseInt()は効果がありません。

getfilesize = parseInt(getfilesize, 10);

あなたが望むものです。このparseInt()関数は最初のパラメーターを変更しません(そして変更できません)。

そうは言っても、次に対処したい問題は、ajax呼び出しが非同期であるという事実です。ファイルサイズを使用するコードを「成功」コールバックに配置する必要があります。

于 2013-01-26T05:33:45.350 に答える