任何人帮助我使用mockjax延迟我的json请求..?

时间:2013-11-07 13:19:06

标签: jquery ajax json mocking mockjax

在我的应用程序中,由于ajax调用的延迟而发生了一些错误。但我正在使用localhost。但我仍然从服务器获取数据,但我没有我的服务器所拥有的数据。

所以我的ajax调用只需几毫秒即可返回数据。我决定在我的localhost中延迟我的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毫秒,但我根本无法延迟..任何人都帮我使用这个插件吗?

Live Demo

1 个答案:

答案 0 :(得分:2)

我发现将URL修改为假的URL有帮助 - 但是为了让你的页面仍然可以处理我必须将api调用返回的样本数据插入flickr的数据。

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;
    });
});