2

コンテクスト

サーバーを節約するために、いくつかのサイトをAjax呼び出しで1つずつ更新します。

Ajax呼び出しが完了すると再び実行される再帰関数を作成しました。

問題

関数は最初のループの後で停止します。

何か案が ?

コード

var updateSite = function (site) {
    if (site.status == 'waiting for update') {
        updateStatus(i, site, 'update in progress');

        $.get(site.url)
            .success(function () {
                updateStatus(i, site, 'updated');
            })
            .error(function () {
                updateStatus(i, site, 'not updated');
            })
            .complete(function () {
                updateSite(allSites[i++]);
            });
    }
};

var i = 0;

updateSite(allSites[i]);
4

2 に答える 2

5

完全な機能を以下のように変更します。

function () {
     updateSite(allSites[++i]);
}
于 2012-08-14T15:45:37.587 に答える
0

エラーメッセージはありますか?

完全に使用している無名関数が定義されている場合、おそらく変数updateSiteはまだ定義されていません。

これを試して:

var updateSite;
updateSite = function (site) {
    if (site.status == 'waiting for update') {
        updateStatus(i, site, 'update in progress');
.... // everything else the same...
于 2012-08-14T15:44:28.017 に答える