備註:我們經常會遇到使用jquery獲取某個地址下的部分頁面內容,然後替換當前頁面對應內容,也就是:局部刷新功能。 當然也可以使用get/post請求獲取數據,修改數據,可以參考以下JS代碼: ...
備註:我們經常會遇到使用jquery獲取某個地址下的部分頁面內容,然後替換當前頁面對應內容,也就是:局部刷新功能。
當然也可以使用get/post請求獲取數據,修改數據,可以參考以下JS代碼:
// Ajax模擬類 var Ajax = function () { //一般處理程式名稱 this.handlerName = ""; //方法名稱 this.actionName = ""; //傳入的參數對象 this.data = {}; //回調函數 this.rollBack = function (result) { }; this.Init = function (handlerName, actionName, dataObject, rollBack) { this.handlerName = handlerName; this.actionName = actionName; this.data = dataObject; this.rollBack = rollBack; return this; }; //Get請求 this.Get = function () { $.ajax({ type: "GET", url: "/ajax/" + this.handlerName + ".js?action=" + this.actionName, data: this.data, async: true,//false代表只有在等待ajax執行完畢後才執行 success: function (json) { try { result = JSON.parse(json); } catch (e) { result = new Function("return " + json)(); } if (window.Ajax.rollBack && window.Ajax.rollBack instanceof Function) { window.Ajax.rollBack(result); } }, error: function (e) { console.log(e); } }); }; //獲取請求地址的HTML內容(獲取html的地址,select選擇器) this.GetHtml = function (getHtmlUrl, jquerySelectDom) { $.ajax({ type: "GET", url: getHtmlUrl, data: "", dateType: "html", //false代表只有在等待ajax執行完畢後才執行 async: false, success: function (data) { if (jquerySelectDom != "") { var $data = $(data); //由於$data是個集合,得到的是所有一級節點的jquery集合,所以,先從一級集合中找,再從所有子元素中找 var $result = $data.next(jquerySelectDom); if ($result.length == 0) { $result = $data.find(jquerySelectDom); } var resultHtml = ""; if ($result.length > 0) { resultHtml = $result.html(); } return resultHtml; } else { return data; } } }); }; //普通Post請求 this.Post = function () { $.ajax({ type: "POST", url: "/ajax/" + this.handlerName + ".js?action=" + this.actionName, data: this.data, //false代表只有在等待ajax執行完畢後才執行 async: true, success: function (json) { try { result = JSON.parse(json); } catch (e) { result = new Function("return " + json)(); } if (window.Ajax.rollBack && window.Ajax.rollBack instanceof Function) { window.Ajax.rollBack(result); } }, error: function (e) { console.log(e); } }); }; //模擬Form表單請求-參數為FormData對象 this.FormPost = function () { $.ajax({ type: "POST", url: "/ajax/" + this.handlerName + ".js?action=" + this.actionName, data: this.data, //false代表只有在等待ajax執行完畢後才執行 async: true, processData: false, contentType: false, success: function (json) { try { result = JSON.parse(json); } catch (e) { result = new Function("return " + json)(); } if (window.Ajax.rollBack && window.Ajax.rollBack instanceof Function) { window.Ajax.rollBack(result); } }, error: function (e) { console.log(e); } }); }; }; window["Ajax"] = new Ajax();