2

JQuery の (2.0.2) のonreadystatechange(基礎となる) からのイベントを使用して同期 ajax リクエストを起動し、実行時間の長いリクエストに対してエンド ユーザーに正確なステータスを表示できるようにしたいと考えています。しかし、この機能は最新バージョンの JQuery から削除されたようで (こちらを参照)、非同期 Web 要求を使用するスピナーがユーザーにアクティビティを表す唯一のオプションになっています。XMLHttpRequest$.ajax(...)

私は次のようなことをします (私はまだ JQuery を使用XMLHttpRequestしたくありませんが)、JQuery で readystate 変更関数にアクセスする方法はまだありますか? onreadystatechangeイベントを公開するプラグインはおそらくありますか?

function pad(width, string, padding) { // from stackoverflow.com/a/15660515/424963 
  return (width <= string.length) ? string : pad(width, string + padding, padding)
}

$(function(){
    $("<div>Loading</div>").appendTo($("body"));
    var anticache = "?anticache=" + new Date().getTime();

    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function() {
        if (xhr.readyState === 4){
            $("div").html("Done");
        }
        else  {
            $("div").html("Loading" + pad(xhr.readyState, "", "."));
        }
    };

    xhr.open("POST", "jsfiddle.net" + anticache, true );
    xhr.send();    
});

JSFiddle

4

1 に答える 1