1

SharePoint ライブラリから電子メール ドキュメント (*.eml ファイル) のリストを取得します。そのリストが完成したら、それを反復処理して、ファイル アクセス データを配列の配列に入れます。このプロセスの最後には、電子メール ファイル名とその他のアクセス データの配列が得られます。このリストを反復処理し、Ajax (jQuery) を介して各メール ファイルを開きます。電子メールの内容が (Ajax 以外のデコード ルーチンから) 返されたら、処理のために送信します。

この処理はシーケンシャルに依存します。アクセス配列から email1 を取得し、それを送信してデコードし、処理します (基本的に、リストに書き込みます)。私が抱えている問題は、email1、次にemail2、次にemail3を送信しても、デコーダーから返されるのは、返されたように感じるものです. たぶん1、2、3、多分1、3、2、多分3、2、1。メールを順番に処理するように気をつけていたので、内容が順番に返されることを期待していました。いいえ。

    $.each(arIDs, function(index, value) {
        //the following statement orders perfectly
          $("#results").append("<br>dealing with " + arIDs[index][2]);
          var ajaxPromise = $.ajax({
            type:"GET",
            url:"GFSSEForm/" + arIDs[index][2],
            dataType:"text"
        }).done(function(data) {
            decodeEmail(data);  //sets global arValues
            $("#results").append("<br>" + arValues);  //not returned in order passed
        });
.
.
.

何か案は?

4

1 に答える 1

1

私は自分で作成したテスト サイト ( http://www.michaelbroschat.com/Ajax/AjaxTest.html ) に対して広範なテストを行い、最終的に失敗しようとしたすべてのブラウザーを取得しました (つまり、FIFO シーケンス以外のキューに入れました)。 . 最新のブラウザー (IE10、Firefox、Chrome) が最適でしたが、最終的にはすべて失敗しました。私の作業環境はIE7で、IE8でもテストしました。どちらも最新のブラウザーよりも早く失敗します。

肝心なのは、ブラウザがイベントを発生順にキューに入れるかどうか、絶対に確信できないということだと思います。

于 2013-03-16T10:46:22.333 に答える