DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript綜合知識 >> JQuery中模擬image的ajaxPrefilter與ajaxTransport處理
JQuery中模擬image的ajaxPrefilter與ajaxTransport處理
編輯:JavaScript綜合知識     

   這篇文章主要介紹了JQuery中模擬image的ajaxPrefilter與ajaxTransport處理,本文直接給出模擬實現代碼,代碼中包含詳細注釋,需要的朋友可以參考下

  ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 ////////////////////////////////////////////////////////////////// // options 是請求的選項 // // originalOptions 值作為提供給Ajax方法未經修改的選項,因此,沒有ajaxSettings設置中的默認值 // // jqXHR 是請求的jqXHR對象 // ////////////////////////////////////////////////////////////////// $.ajaxPrefilter("image", function(options, originalOptions, jqXHR) { //通過預處理器轉化類型 if (options.test) { options.type = 'GET' } //增加前綴 options.url = "http://img.mukewang.com/" + options.url });     /////////////////////// // 請求分發器 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(){   //執行一個異步的HTTP(Ajax)的請求。 var ajax = $.ajax({ test : true, //測試 url : '547d5a45000156f406000338-590-330.jpg', dataType : 'image', type : 'POST', data: { foo: ["bar1", "bar2"] }, //這個對象用於設置Ajax相關回調函數的上下文 context: document.body, //請求發送前的回調函數,用來修改請求發送前jqXHR beforeSend: function(xhr) { xhr.overrideMimeType("text/plain; charset=x-user-defined"); show('局部事件beforeSend') }, //請求完成後回調函數 (請求success 和 error之後均調用) complete: function() { show('局部事件complete') }, error: function() { show('局部事件error請求失敗時調用此函數') }, success: function() { show('局部事件success') } })   ajax.done(function() { show('done') }).fail(function() { show('fail') }).always(function() { show('always') })
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved