1

私のアプリケーションでは、ajax 呼び出しの遅延が原因でエラーが発生しました。しかし、私はローカルホストで作業しています。それでもサーバーからデータを取得していますが、サーバーのデータほど多くはありません。

したがって、私の ajax 呼び出しは、データを返すのに数ミリ秒しかかかりません。ローカルホストで ajax 呼び出しを遅らせることにしました。そのために、mockjax プラグインを選択しました。しかし、実際には ajax 呼び出しを遅らせることはできません。

ここに私の試みがあります:

var URL = "http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?";

$.mockjax({
    url: URL,
    responseTime: 5000, // it is not delay the call at all..
    responseText: {
        status: 'success',
        fortune: 'Are you a turtle?'
    }
});

$.getJSON(URL, {
    tags: "flowers",
    tagmode: "any",
    format: "json"
},

function (data) {
    $.each(data.items, function (i, item) {
        $("<img/>").attr("src", item.media.m).appendTo("#images");
        if (i == 10) return false;
    });
});

私は意図的に応答を 5000 ミリ秒遅らせていますが、まったく遅らせることができません..誰かこのプラグインの使用を手伝ってください..?

ライブデモ

4

1 に答える 1

2

URL を偽の URL に変更すると効果的であることがわかりましたが、ページを引き続きデータで機能させるには、flickr への API 呼び出しによって返されるサンプル データを挿入する必要がありました。

http://jsfiddle.net/uXgX9/4/

完全なコードについては、フィドルを参照してください

Javascript:

startTime = new Date();
$.mockjax({
    url: URL,
    responseTime: 5000,
    responseText: {
        "title": "Recent Uploads tagged flowers",
        "link": "http://www.flickr.com/photos/tags/flowers/",
        "description": "",
        "modified": "2013-11-07T12:05:59Z",
        "generator": "http://www.flickr.com/",
        "items": [{
            "title": "La saison d'été décline",
             ....
}]
    }
});

$.getJSON(URL, {
    tags: "flowers",
    tagmode: "any",
    format: "json"
},

function (data) {
    endTime = new Date();
    diffTime = new Date(endTime - startTime).getSeconds();
    console.log('mocked ' + diffTime + ' seconds later:', data);
    $.each(data.items, function (i, item) {
        $("<img/>").attr("src", item.media.m).appendTo("#images");
        if (i == 10) return false;
    });
});
于 2013-11-07T13:51:37.213 に答える