当load()在5秒内没有返回时,我想取消.load()操作.如果是这样,我会显示错误消息,例如'抱歉,没有图片加载'.
我拥有的是......
...超时处理:
jQuery.fn.idle = function(time, postFunction){
var i = $(this);
i.queue(function(){
setTimeout(function(){
i.dequeue();
postFunction();
}, time);
});
return $(this);
};
Run Code Online (Sandbox Code Playgroud)
...初始化错误消息超时:
var hasImage = false;
$('#errorMessage')
.idle(5000, function() {
if(!hasImage) {
// 1. cancel .load()
// 2. show error message
}
});
Run Code Online (Sandbox Code Playgroud)
...图像加载:
$('#myImage')
.attr('src', '/url/anypath/image.png')
.load(function(){
hasImage = true;
// do something...
});
Run Code Online (Sandbox Code Playgroud)
我唯一想知道的是如何取消正在运行的load()(如果可能的话).
编辑:
另一种方法:如何阻止.load()方法在返回时调用它的回调函数?
我知道这个问题已被多次回答,但我没有运气就尝试了所有答案.我不认为我做了一些根本错误的事情,但这里肯定是错的.
我使用以下代码将PNG文件上传到tinypng.com.据我所知,上传本身有效,但收到错误消息:请求失败:不支持的媒体类型(415)
我使用的图像以JPEG格式加载,然后调整大小并转换为PNG格式.保存的文件很好.现在我想在将它们保存到光盘之前将它们发送到TinyPNG API.
如果有人有任何想法错误或有这方面的经验,请告诉我.提前致谢!
详细的错误消息
Error Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: unsupported media type (415)"
UserInfo=0x6000000e4900 {
com.alamofire.serialization.response.error.response=<NSHTTPURLResponse: 0x600000220200> { URL: https://api.tinypng.com/shrink }
{
status code: 415, headers {
Connection = "keep-alive";
"Content-Length" = 77;
"Content-Type" = "application/json; charset=utf-8";
Date = "Tue, 16 Dec 2014 20:24:16 GMT";
Server = "Apache/2";
"Strict-Transport-Security" = "max-age=31536000";
"X-Powered-By" = "Voormedia (voormedia.com/jobs)";
}
},
NSErrorFailingURLKey=https://api.tinypng.com/shrink,
com.alamofire.serialization.response.error.data=<7b226572 726f7222 3a224261 64536967 6e617475
7265222c 226d6573 73616765 223a2244 6f657320 6e6f7420 61707065 61722074 6f206265 20612050
4e47206f 72204a50 …Run Code Online (Sandbox Code Playgroud)