JQuery中模擬image的ajaxPrefilter與ajaxTransport處理
更新時間:2015年06月19日 09:15:34 投稿:junjie
這篇文章主要介紹了JQuery中模擬image的ajaxPrefilter與ajaxTransport處理,本文直接給出模擬實現(xiàn)代碼,代碼中包含詳細注釋,需要的朋友可以參考下
////////////////////////////////////////////////////////////////// // options 是請求的選項 // // originalOptions 值作為提供給Ajax方法未經(jīng)修改的選項,因此,沒有ajaxSettings設置中的默認值 // // jqXHR 是請求的jqXHR對象 // ////////////////////////////////////////////////////////////////// $.ajaxPrefilter("image", function(options, originalOptions, jqXHR) { //通過預處理器轉化類型 if (options.test) { options.type = 'GET' } //增加前綴 options.url = "http://img.mukewang.com/" + options.url }); /////////////////////// // 請求分發(fā)器 transports // /////////////////////// $.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); }; show(s.url) image.src = s.url; }, abort: function() { if (image) { image = image.onreadystatechange = image.onerror = image.onload = null; } } }; } }); $("#test").click(function(){ //執(zhí)行一個異步的HTTP(Ajax)的請求。 var ajax = $.ajax({ test : true, //測試 url : '547d5a45000156f406000338-590-330.jpg', dataType : 'image', type : 'POST', data: { foo: ["bar1", "bar2"] }, //這個對象用于設置Ajax相關回調函數(shù)的上下文 context: document.body, //請求發(fā)送前的回調函數(shù),用來修改請求發(fā)送前jqXHR beforeSend: function(xhr) { xhr.overrideMimeType("text/plain; charset=x-user-defined"); show('局部事件beforeSend') }, //請求完成后回調函數(shù) (請求success 和 error之后均調用) complete: function() { show('局部事件complete') }, error: function() { show('局部事件error請求失敗時調用此函數(shù)') }, success: function() { show('局部事件success') } }) ajax.done(function() { show('done') }).fail(function() { show('fail') }).always(function() { show('always') })
您可能感興趣的文章:
相關文章
web的各種前端打印方法之jquery打印插件jqprint實現(xiàn)網(wǎng)頁打印
本文介紹JQuery插件Jqprint實現(xiàn)網(wǎng)頁打印,不懂的同學正可借此機會學習下,以備不時之需,話不多說,切入主題2013-01-01jQuery實現(xiàn)ajax調用WCF服務的方法(附帶demo下載)
這篇文章主要介紹了jQuery實現(xiàn)ajax調用WCF服務的方法,以完整實例形式分析了jQuery的ajax前端調用及后臺交互調用WCF服務的相關技巧,并附帶完整實例共讀者下載,需要的朋友可以參考下2015-12-12