3

短いバージョン:

これをこれで動作させたい:

長いバージョン:

$.ajax オブジェクトにプログレス メソッドを追加し、IE8 および IE9 の XDomainRequest オブジェクトで動作する jQuery 拡張機能を作成したいと考えています。

現在、上記のプラグインを使用すると、XMLHttpRequest オブジェクトの進行状況イベント コールバック ハンドラしか定義できません。

ただし、XDomainRequest は onprogress イベントも提供します。基本的に XDomainRequest のラッパーが必要です。例えば。progressEvent.length は xdr.responseText.length に対応します。

どこから始めるべきかについての提案をいただければ幸いです。

4

1 に答える 1

4

さて、私はこれを解決しました。最終的に、ajax トランスポーターを介してXDomainRequestを実装する ajaxHooks をフォークしました。

オリジナルの ajax オブジェクトで定義できる「progress」という名前の onprogress イベント コールバックのサポートを追加しました。

W3C 標準に従って、コンテンツの長さを取得できないため、progressEvent.lengthComputable = false となり、progressEvent.total = 0;

以下の例を参照してください。

$(document).ready(function(){

    var download_url = YOUR_URL;

    $.ajax({

        url: download_url,
        cache: false,
        progress: function(jqXHR, progressEvent) {

            console.log(progressEvent.loaded);

        }
    })
});

ここで私のajaxHooks フォークを参照してください。

于 2012-09-06T00:36:15.397 に答える