有关于整体刷新和局部刷新frameset窗口

秋天的月亮人

秋天的月亮人

2016-02-19 10:36

下面图老师小编跟大家分享一个简单易学的有关于整体刷新和局部刷新frameset窗口教程,get新技能是需要行动的,喜欢的朋友赶紧收藏起来学习下吧!
在项目中,经常会遇到页面分割,最常见的系统或网站的主界面。主页面分为,上面系统简介、下面作者简介、左边系统功能菜单、右边则是菜单真正展示的界面。

遇到这种这种分割页面,大家首先想到是frameset,使用framset分割多种frame,这种方式简单。若是不喜欢使用framset,喜欢前台设计的人也许会选择p拼接,浮动,这就考查css样式的功底了。

这次主要讲解局部刷新的问题。需求是:左边frame,右边frame。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

大家肯定疑问,这样刷新没有问题啊。的确如此。现在使用framset,分割两frame,各自更新各自。右边frame展示菜单尽管更新提交即可。对左边frame是没有影响的。

为了方便理解,左边Frame简称LeftFrame,右边Frame简称RightFrame;假如我提交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

其中modifyMenu!showTreeMenu是转向到tree.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。

提到局部部分刷新,肯定想到是Ajax局部刷新。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

那我们用纯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

后台action中的写法如下:

代码如下:

HttpServletResponse response=ServletActionContext.getResponse();
response.setContentType("text/html;charset=utf-8");
out=response.getWriter();
out.print("从后台传入的数据");

两种刷新方式,一种整体刷新;一种局部刷新;

展开更多 50%)
分享

猜你喜欢

有关于整体刷新和局部刷新frameset窗口

编程语言 网络编程
有关于整体刷新和局部刷新frameset窗口

关于页面局部刷新例程

ASP
关于页面局部刷新例程

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

实现web页面的局部刷新

电脑网络
实现web页面的局部刷新

IE Firefox 浏览器刷新和强制刷新发送的 HTTP Request Header

Web开发
IE Firefox 浏览器刷新和强制刷新发送的 HTTP Request Header

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

实现Win8无盘刷新和重置系统

电脑入门
实现Win8无盘刷新和重置系统

ASP实用技巧:强制刷新和判断文件地址

Web开发
ASP实用技巧:强制刷新和判断文件地址

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

vbs打开ie两种方法 在VBScript中启动IE浏览器的实现代码

vbs打开ie两种方法 在VBScript中启动IE浏览器的实现代码

windows系统如何定时停止某个程序

windows系统如何定时停止某个程序
下拉加载更多内容 ↓