전체 새로 고침 및 부분 새로 고침 프레임셋 창
이런 분할 페이지를 만나면 모두들 먼저 프레임셋이라고 생각하는데 프레임셋을 사용하여 여러 프레임을 분할하는 방식은 간단하다.만약에 프레임셋을 사용하는 것을 좋아하지 않는다면 프론트 데스크톱 디자인을 좋아하는 사람들은 p조합, 부동을 선택할 수 있다. 이것은 css 스타일의 기초를 고찰한 것이다.
이번에는 국부 쇄신 문제를 주로 설명한다.수요는: 왼쪽 프레임, 오른쪽 프레임.
여러분은 틀림없이 의문이 있을 것입니다. 이렇게 갱신하는 것은 문제가 없습니다.그렇습니다.현재 프레임셋을 사용하여 두 프레임을 분할하고 각자 업데이트합니다.오른쪽 프레임 디스플레이 메뉴는 업데이트해서 제출하면 됩니다.왼쪽 프레임에는 영향이 없습니다.
이해를 편리하게 하기 위해 왼쪽 프레임은 Left Frame, 오른쪽 프레임은 Right Frame이라고 약칭한다.RightFrame 페이지를 제출하려면 LeftFrame [동적] 페이지를 업데이트해야 합니다.그럼 어떻게 하지?
사실은 데이터베이스에서 데이터를 다시 읽는 것이다.
<FRAMESET cols = "280,*" frameborder=yes bordercolor=silver>
<FRAME SRC="modifyMenu!showTreeMenu" NAME="menuTree" SCROLLING="No" id="leftTree">
<FRAME SRC="showModifyMenu.jsp" NAME="main" SCROLLING="AUTO" id="showModifyMenu">
</FRAMESET>
그중에서modify menu!show Tree Menu는 트리로 전환합니다.jsp 페이지현재 프로젝트에서 프론트 데스크톱은struts2를 사용하고 오른쪽 페이지 데이터를 제출할 때 다음과 같이 생각했다. 그리고 다시 메인 인터페이스로 이동하면 데이터를 다시 읽는 것과 맞지만 불러오는 메인 인터페이스는 오른쪽 구역에 표시되어 두 개의 LeftFrame이 된다.Struts2의 resultType 방향을 변경해도 안 됩니다.
마지막으로 간단한 JS로 문제를 해결하다니.
오른쪽 페이지 RightFrame을 커밋하고 JS를 사용하여 왼쪽 LeftFrame을 업데이트합니다.다음과 같습니다.
rightFrame에 있는 body의 onload 이벤트:
function init(){
//leftTree Frame id
//
window.parent.frames[ "leftTree"].location.reload();
}
window.parent.frames[ "leftTree"].location.reload()당시에 네가 어떤 사고방식이 산에 올라가 궁지에 몰렸을 때, 생각을 바꾸어 볼 수도 있고, 또한 버드나무가 어두워지고 꽃이 밝을 수도 있다.
필요는 다음과 같습니다. 오른쪽 RightFrame 페이지를 새로 고치면 왼쪽 왼쪽 LeftFrame [어떤 p 새로 고침]만 새로 고칩니다.
부분 리셋 하면 Ajax 부분 리셋이라고 생각할 거예요.
그러면 우리는 순수한 js의 Ajax 기초로 실현한다.
function createXmlHttpRequest(){
if(window.XMLHttpRequest){
return new XMLHttpRequest();
}else if(window.ActiveXObject){
return new ActiveXObject("Microsoft.XMLHTTP");
}
}
function init(){
//
var xmlHttpReq=createXmlHttpRequest();
// url , struts2 action servlet jsp
var url="success.jsp";
xmlHttpReq.open("GET",url,true);
// ,
// XMLHttpRequest
xmlHttpReq.onreadystatechange=function(){
if(xmlHttpReq.readyState==4){
if(xmlHttpReq.status==200){
// parent p,
window.parent.frames["leftTree"].document.getElementById(pId).innerHTML=" ";
}else{
alert(xmlHttpReq.status+xmlHttpReq.responseText);
}
}
};
xmlHttpReq.send(null);
}
window.parent.frames["leftTree"].document.getElementById(pId).innerHTML=xmlHttpReq.responseText백그라운드 액션의 쓰기 방법은 다음과 같습니다.
HttpServletResponse response=ServletActionContext.getResponse();
response.setContentType("text/html;charset=utf-8");
out=response.getWriter();
out.print(" ");
두 가지 리셋 방식, 한 가지 전체적인 리셋;국부 리셋;