小的图像怎样传输实现
导读: options 是请求的选项 originalOptions 值作为提供给Ajax方法未经修改的选项,因此,没有ajaxSettings设置中的默认值 jqXHR 是请求的jqXHR对象 hea...
options 是请求的选项
originalOptions 值作为提供给Ajax方法未经修改的选项,因此,没有ajaxSettings设置中的默认值
jqXHR 是请求的jqXHR对象
headers 是一个请求头信息(键 - 值)对象,该传输(transport)都可以发送,如果它支持
completeCallback 是回调用于该请求Ajax的完成通知
completeCallback 具有以下签名:
function( status, statusText, responses, headers ) {
}
以下的情况下:
status 是响应的HTTP状态代码,像200是一个典型的成功,或404是没有找到资源。
statusText 是响应状态文本。
responses (可选)是一个对象,它包含数据类型/值(dataType/value)包含响应运输提供的所有格式。(例如,一个原生的XMLHttpRequest对象设置reponses为{
xml: XMLData, text: textData }
,这样响应是一个XML文档)
headers (可选)是一个字符串,其中包含所有的响应信息头,如果运输对它们的访问(类似于XMLHttpRequest.getAllResponseHeaders()提供的方法)。
就像预过滤器(prefilters),一个传输(transport)的工厂函数可以被连接到一个特定的 dataType(数据类型):
$.ajaxTransport( "script", function( options, originalOptions, jqXHR ) {
/* Will only be called for script requests */
}
);
面的示例演示小的图像怎样传输实现:
$.ajaxTransport( "image", function( s ) {
if ( s.type === "GET" &
&
s.async ) {
var image;
return {
send: function( _ , callback ) {
image = new Image();
function done( status ) {
if ( image ) {
var statusText = ( status == 200 ) ? "success" : "error",
tmp = image;
image = image.onreadystatechange = image.onerror = image.onload = null;
callback( status, statusText, {
image: tmp }
);
}
}
image.onreadystatechange = image.onload = function() {
done( 200 );
}
;
image.onerror = function() {
done( 404 );
}
;
image.src = s.url;
}
,
abort: function() {
if ( image ) {
image = image.onreadystatechange = image.onerror = image.onload = null;
}
}
}
;
}
}
);
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 小的图像怎样传输实现
本文地址: https://pptw.com/jishu/655830.html
