전체 새로 고침 및 부분 새로 고침 프레임셋 창

프로젝트에서 페이지 분할, 가장 흔히 볼 수 있는 시스템이나 사이트의 메인 인터페이스를 자주 만날 수 있다.메인 화면은 위의 시스템 소개, 아래의 저자 소개, 왼쪽 시스템 기능 메뉴, 오른쪽은 메뉴가 진정으로 보여주는 인터페이스로 나뉜다.
이런 분할 페이지를 만나면 모두들 먼저 프레임셋이라고 생각하는데 프레임셋을 사용하여 여러 프레임을 분할하는 방식은 간단하다.만약에 프레임셋을 사용하는 것을 좋아하지 않는다면 프론트 데스크톱 디자인을 좋아하는 사람들은 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(" ");
두 가지 리셋 방식, 한 가지 전체적인 리셋;국부 리셋;

좋은 웹페이지 즐겨찾기