首先,先介紹方案
古人語:“ 授人以魚不如授人以漁”。那麼我先來來說一下方案。
$p.load(url,data,function(response,status,xhr))
參數 描述
url 規定要将請求發送到哪個 URL。
data 可選。規定連同請求發送到伺服器的資料。
function(response,status,xhr) 可選。規定當請求完成時運作的函數。額外的參數:response - 包含來自請求的結果資料;status - 包含請求的狀态(”success”, “notmodified”, “error”, “timeout” 或 “parsererror”);xhr - 包含 XMLHttpRequest 對象
那麼我們需要提供ajax請求的回調函數至少兩個參數url以及jquery對象。
另外,我們還可能有位址欄重載的可能。
location.href
是以,我們還需要提供一個參數。
于是,我們封裝三個屬性
// 局部加載
String elementId = getPara("elementId");
String loadPage = getPara("loadPage");
// 位址欄跳轉路徑
String locationUrl = getPara("locationUrl");
setAttr("elementId", elementId);
setAttr("loadPage", loadPage);
setAttr("locationUrl", locationUrl);
<a href="${ctx}/mem/logout?elementId=log_tip&loadPage=header_login_tip"
<form class="pop_login_form"
action="${ctx}/mem/login?callbackType=closeCurrent&elementId=log_tip&loadPage=header_login_tip"
然後,我們來使用
function dialogAjaxDone(json) {
YUNM.ajaxDone(json);
if (json[YUNM.keys.statusCode] == YUNM.statusCode.ok || json[YUNM.keys.statusCode] == YUNM.statusCode.info) {
if ("closeCurrent" == json.callbackType) {
close_pop();
}
if (json.locationUrl) {
location.href = json.locationUrl;
} else {
// 如果指定了後調轉頁面,進行調轉
$("#" + json.elementId).load(common.loadPath + json.loadPage + common.viewType);
}
}
}
我提供類似的方法,主要是按照标題1中給出的方案。
注意點
要使用jquery的load方法,就必須将對應的頁面所有的引用都加上。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ include file="/components/common/taglib.jsp"%>
<script type="text/javascript">
$("a[target=ajaxTodo]").ajaxTodo();
</script>
<div>
<c:choose>
<c:when test="${sessionScope.username!=null}">
<a href="javascript:void(0);" id="mycenter" style="">
${sessionScope.username}<s class="icon_arrow icon_arrow_down"></s>
</a>
<i class="line"></i>
<a href="${ctx}/mem/logout?elementId=log_tip&loadPage=header_login_tip" target="ajaxTodo" callback="ajaxDone"
atitle="你确定要退出嗎?" id="user_login_out" style="padding: 0 6px;">退出</a>