在我的应用程序中,由于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毫秒,但我根本无法延迟..任何人都帮我使用这个插件吗?
答案 0 :(得分:2)
我发现将URL修改为假的URL有帮助 - 但是为了让你的页面仍然可以处理我必须将api调用返回的样本数据插入flickr的数据。
查看完整代码的小提琴
使用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;
});
});