ale*_*lex 4 error-handling jquery jquery-plugins
我编写了一个名为waitForImages的jQuery插件.它基本上可以在加载图像时运行回调.
我最近收到一个功能请求,以便在下载图像时出错时以某种方式通知代码.
插件是否可以在找不到图像时调用函数?
我想添加一个额外的参数,可以检查图像是否成功下载.
image.onerror = function() {
eachCallback.call(img.element, allImgsLoaded, allImgsLength, true);
}
Run Code Online (Sandbox Code Playgroud)
然后该人可以检查最后一个参数以查看它是否是true,如果是,则加载图像时出错.
这个想法虽然闻到了我的意思.如果我想在以后添加额外的参数怎么办?是否应该为成功和图像下载失败调用相同的回调?
然后,我想到如果找不到图像则抛出异常.
throw new Error(img.src ' + does not exist');
Run Code Online (Sandbox Code Playgroud)
然而,这并不像捕捉那样灵活,你需要像这样调用插件......
try {
$('body').waitForImages();
} catch (exception) {
// Which image didn't load?
alert(exception.message);
}
Run Code Online (Sandbox Code Playgroud)
如果图像没有加载到我的插件中,最好的处理方法是什么?
我会为错误条件添加一个特定的回调.
你已经拥有了这个:
$('selector').waitForImages({
finished: function() {
...
},
each: function() {
...
},
waitForAll: true
});
Run Code Online (Sandbox Code Playgroud)
您应该考虑将其更改为:
$('selector').waitForImages({
finished: function() {
...
},
finishedError: function() {
...
},
each: function() {
...
},
eachError: function() {
...
},
waitForAll: true
});
Run Code Online (Sandbox Code Playgroud)
你也可以使用"finishedSuccess",如果给出,只是为了保持一致.
我更喜欢这个,原因如下:
请不要抛出异常.未捕获的异常将破坏JavaScript执行.可能不是因为图像没有加载而你想要做的事情.
| 归档时间: |
|
| 查看次数: |
558 次 |
| 最近记录: |