91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JQuery中如何實現ajax局部刷新

發布時間:2021-08-19 11:33:50 來源:億速云 閱讀:235 作者:小新 欄目:web開發

這篇文章給大家分享的是有關JQuery中如何實現ajax局部刷新的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

JQuery 再談ajax局部刷新。

案例:

JQuery中如何實現ajax局部刷新
JQuery中如何實現ajax局部刷新
JQuery中如何實現ajax局部刷新
JQuery中如何實現ajax局部刷新

描述:

1. 點擊登錄則彈出登錄對話框
2. 如果用戶名密碼不正確,則提示錯誤信息
3. 當輸入信息正確,則刷新登錄信息,顯示用戶名和退出按鈕
4. 點擊退出彈出提示信息,然后確定后再次刷新用戶名,回到了第一幅圖片的位置

那這些簡單的操作,都需要做一些什么工作呢?

1. 加載登錄/(用戶名-退出)的頁面
2. 點擊登錄連接,打開登錄對話框
3. 登錄form表單提交時,對信息進行驗證。
4. 驗證通過后,關閉對話框,同時刷新1中的頁面,顯示“用戶名-退出”
5. 點擊退出a標簽時,登出成功后再次刷新1中的頁面,顯示“登錄”

加載登錄/(用戶名-退出)的頁面

<div id="login_tip" url="${ctx}/mem/initLoginTip"></div>

1. 給div一個id,用來做頁面索引,使后面能夠定位到此處。
2. 給一個url屬性,使其在頁面加載的時候向jfinal服務端獲取對應信息,當然也就是為了局部刷新獲取頁面內容。

// 有url的div主動請求服務端獲取數據
 $("div[url]", $p).each(function() {
 var $this = $(this);
 var url = $this.attr("url");
 if (url) {
 $this.ajaxUrl({
 type : "POST",
 url : url,
 callback : function() {
 }
 });
 }
 });

通過url來定位到DIV,然后獲取url,準備發起ajax請求。

當然ajaxUrl方法先不要去關注太多,稍后會進一步解釋。

點擊登錄連接,打開登錄對話框

復制代碼 代碼如下:

<a title="登錄" href="${ctx}/mem/initLogin/${sessionScope.username.username}" rel="external nofollow" target="dialog" width="600">登錄</a>

1. 增加屬性target為dialog屬性,當然如果你還沒有關注本系列教程,那么你可以回顧一下來看看怎么通過a標簽打開一個對話框,看看如何打開模態對話框。
2. 增加width屬性,設置對話框的寬度。

當輸入信息正確,則刷新登錄信息,顯示用戶名和退出按鈕

復制代碼 代碼如下:

<form class="pop_login_form" action="${ctx}/mem/login?callbackType=closeCurrent&rel=login_tip" method="post" onsubmit="return validateCallback(this, dialogAjaxDone)">

1. 這個form表單的屬性就很關鍵了,action中增加了兩個參數“callbackType=closeCurrent”、“rel=login_tip”,callbackType指定對話框在登錄成功后要關閉,而rel則指定關閉對話框后刷新的局部對象。
2. validateCallback你可以參照 jfinal與bootstrap的登錄跳轉實戰,里面有詳細的介紹。
3. 然后對于dialogAjaxDone,就需要重點說明以下,請看以下內容。

function dialogAjaxDone(json) {
 YUNM.ajaxDone(json);
 if (json[YUNM.keys.statusCode] == YUNM.statusCode.ok || json[YUNM.keys.statusCode] == YUNM.statusCode.info) {
 if (json.rel) {// 指定對應的div進行數據加載
 var url = json.forwardUrl, options = {
 elementId : json.rel
 };
 var op = $.extend({
 data : {},
 elementId : "",
 callback : null
 }, options);

 var $panel = $("#" + op.elementId);

 if (!url) {
 url = $panel.attr("url");
 }

 if (url) {
 $panel.ajaxUrl({
 type : "POST",
 url : url,
 data : op.data,
 callback : function(response) {
 if ($.isFunction(op.callback))
 op.callback(response);
 }
 });
 }
 }

 if ("closeCurrent" == json.callbackType) {
 close_pop();
 } else if ("closeCurrentThenForward" == json.callbackType) {
 close_pop();
 if (json.forwardUrl) {
 location.href = common.ctx + json.forwardUrl;
 return;
 }
 }
 }
}

1. 這里請看“if (json.rel) {”中的這串代碼,該處通過json.rel,獲取a標簽上的系列參數,然后再次調用ajaxUrl方法,用來做局部刷新。

到了這里,就不得不說ajaxUrl這個方法了

(function($){
 // DWZ set regional
 $.setRegional = function(key, value){
 if (!$.regional) $.regional = {};
 $.regional[key] = value;
 };

 $.fn.extend({
 initUI: function(){
 return this.each(function(){
 if($.isFunction(initUI)) initUI(this);
 });
 },
 loadUrl: function(url,data,callback){
 $(this).ajaxUrl({url:url, data:data, callback:callback});
 },
 ajaxUrl: function(op){
 var $this = $(this);

 $this.trigger(YUNM.eventType.pageClear);

 $.ajax({
 type: op.type || 'GET',
 url: op.url,
 data: op.data,
 cache: false,
 success: function(response){
 var json = YUNM.jsonEval(response);

 if (json[YUNM.keys.statusCode]==YUNM.statusCode.error){
 if (json[YUNM.keys.message]) $.showErr(json[YUNM.keys.message]);
 } else {
 $this.html(response).initUI();
 if ($.isFunction(op.callback)) op.callback(response);
 }
 },
 error: YUNM.ajaxError,
 statusCode: {
 503: function(xhr, ajaxOptions, thrownError) {
 $.showErr("服務器當前負載過大或者正在維護!" || thrownError);
 }
 }
 });
 },

 });

通過ajax請求,向jfinal端發起請求,然后接收對應的response,根據response狀態,我們將對應的頁面渲染內容顯示到局部DIV中。

jfinal端就很簡單了

public void initLoginTip() {
 logger.info("初始化登錄/退出頁面");
 render("login_tip.jsp");
 }

渲染到對應組件頁面就OK了。

說到這,登錄的局部刷新就完成了,只要你注意到對應的方法就好了。

點擊退出a標簽時,登出成功后再次刷新1中的頁面,顯示“登錄”

對于退出,你當然還是可以參照jfinal與bootstrap的登出實戰。

對于ajaxDone方法,你可以參照dialogAjaxDone方法。

感謝各位的閱讀!關于“JQuery中如何實現ajax局部刷新”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

和田县| 张家港市| 永修县| 平武县| 昌黎县| 青阳县| 济宁市| 南京市| 喀喇| 凤山市| 土默特左旗| 宾川县| 宜昌市| 嘉兴市| 康马县| 北碚区| 阳新县| 望奎县| 阳春市| 公安县| 榆林市| 桂东县| 诸暨市| 临洮县| 和顺县| 宜兴市| 珲春市| 得荣县| 镇赉县| 陇川县| 尉犁县| 万山特区| 深水埗区| 额尔古纳市| 杭锦后旗| 孟津县| 南充市| 郎溪县| 静安区| 尖扎县| 义乌市|