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 会有所帮助 - 但是为了使您的页面仍然可以使用数据,我必须将 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;
    });
});
于 2013-11-07T13:51:37.213 回答