有IFrame,我们干吗还要用Ajax?
Ajax现在很火的,它的用途大家都知道,但你知道不?表面看Ajax页面没有刷新,其实它是刷新了整个页面的,只是看不到而已,不信,打开Vs的IDE,跟踪一下就知道了。
其实网页局部刷新,完全可以不用Ajax那么复杂的东西,利用IFrame 就可以了。下面我给他大家一个测试代码:
网页index.htm,客户端测试网页,
<html>
<head>
<meta http-equiv="Content-Type" c>
<title>Ajax模拟文件</title>
</head>
<body>
<br>
有了它,我们干吗还要用Ajax?
<span id="spanTrue">spanTrue</span>
<script language="javascript">
//通用函数,请求服务器文本
function GetServerText(RequestUrl)
{
if(!window.spanIFrame)
{
var spanIFrame=document.createElement("span");
spanIFrame.id="spanIFrame";
spanIFrame.innerText="";
spanIFrame.style.display="none";
document.body.appendChild(spanIFrame);
}
if(!window.IFrameRequest)
{
var IFrameRequest=document.createElement("iframe");
IFrameRequest.id="IFrameRequest";
IFrameRequest.src=RequestUrl;
IFrameRequest.style.display="none";
document.body.appendChild(IFrameRequest);
}
else
{
window.IFrameRequest.location.reload();
}
return window.spanIFrame.innerText;
}
//客户端方法,自己定义刷新那个控件,多少时间。
function ShowServerTime()
{
spanTrue.innerText=GetServerText("remote.asp");
window.setTimeout("ShowServerTime();",1000);
}
ShowServerTime();
</script>
</body>
</html>
网页remote.asp,很简单,就是一个显示服务器时间的程序。
<script language="javascript">
function setParentObjValue(objName,setValue)
{
window.parent.document.getElementById(objName).innerText=setValue;
}
setParentObjValue("spanIFrame","<%=Time%>");
</script>
其中 spanIFrame 就是客户端创建的一个标记而已。这样就把服务器端的内容返回到客户端了。
是不是很简单啊?那我们干嘛还要用Ajax呢?如果你的网页无刷新需求很简单,完全没有必要再用Ajax了。
|