关于ASP实现无闪烁刷新(局部刷新),求大牛拯救!

plutolxl 2012-12-24 02:02:34
网上查到的比较多的资料是xmlhttp方式的,另外还有就是JS脚本替换实现的刷新,我现在的需求是在A.asp中加载B.asp,要求B.asp定时刷新。
JS替换法代码如下
cs.html

<head>
<script language="javascript">
var value = "";
var timeid = null;
var _onjsload=null;

function showvalue() {
_onjsload= function(){alert(scr.src+' loaded.')}
text.innerHTML = "Please wait .... ";
(scr.src == "1.js")?scr.src = "2.js":scr.src = "1.js";

timeid = setTimeout("showvalue()", 2000);
}

function jsLoadReady(){
if(_onjsload!=null){
_onjsload();
text.innerHTML = value;
_onjsload=null;
}
}
</script>
</head>
<BODY aLink=#000020 bgColor=#ffffff id=all link=#000020 text=#070155 topMargin=10 vLink=#000020 marginheight="10" marginwidth="10">
<button type="button" onclick="showvalue();">Change</button>
<span id="text"></span>
<script id="scr" language="javascript" src=""></script>
</body>


1.js

value = 'This is 1.js.';
jsLoadReady();


网上另外找到的资料如下,测试不成功,求指导!
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=gb2312'>
<script language='JavaScript' type='text/javascript'>
<!--关键在这个函数-->
function GetData(url)
{
try
{
DataLoad.src = url;
}
catch(e)
{
return false;
}
}
</script>
<script id='DataLoad' language='JavaScript' type='text/javascript' defer></script>
</head>
<body>
<input type='button' name='Submit' value='请求' onClick='GetData('dataload.asp)'>
</body>
</html>
...全文
530 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 4 楼 plutolxl 的回复:
引用 2 楼 showbo 的回复:属性不闭合导致js出错了 属性闭合的错误是因为网络代码粘贴时没仔细看,实际测试时代码是对的,而且就是这个测试代码,修复了闭合错误也没实现我所期望的效果,点击按钮没有看到dataload.asp的内容
dataload.asp你怎么写的?不能用document.write输出内容,没效果,你可以参考jsonp的操作方法,dataload.asp输出页面注册回调函数名称和数据这样来更新内容,和你发的第一种方式一样,不过需要注意多次更改script的src需要想head标签append一个script对象,要不firefox下多次设置同一个script没用,#2已经说过了。 DEMO x.js
//输出回调函数,dataload.asp大概输出的内容如下,new Date()改为需要的数据
callback(new Date())
<script >
    function ReloadScript(url) {
        var script = document.createElement('script');
        script.type = 'text/javascript';
        script.src = url+'?_dc=' + new Date().getTime();
        document.getElementsByTagName('head')[0].appendChild(script);
    }
    function callback(data){////回调函数
        document.getElementById('dvTime').innerHTML=data;
    }
</script>
<div id="dvTime"></div>
<input type="button" onclick="ReloadScript('x.js')" value="加载Script"/>
fzfei2 2012-12-25
  • 打赏
  • 举报
回复
b.asp,中不要有,html,body,只有要显示内容的HTML --------------------------- <div>......</div> a.asp ---------------------- <div id="b_page"></div> b_page.innerHTML=xmlhttp.responseText
plutolxl 2012-12-24
  • 打赏
  • 举报
回复
目前来说xmlhttp方式实现的效果最接近我所期望的,就是b.asp的数据在刷新,其他部分数据不变化,但是不知道是不是因为xmlhttp数据的原因,嵌在a.asp后完全没有格式了,只有一堆数据
plutolxl 2012-12-24
  • 打赏
  • 举报
回复
引用 2 楼 showbo 的回复:
属性不闭合导致js出错了 <input type='button' name='Submit' value='请求' onClick='GetData('dataload.asp)'> ===>> <input type='button' name='Submit' value='请求' onClick='GetData("dataload.asp")'> 而且需要注意scri……
属性闭合的错误是因为网络代码粘贴时没仔细看,实际测试时代码是对的,而且就是这个测试代码,修复了闭合错误也没实现我所期望的效果,点击按钮没有看到dataload.asp的内容
plutolxl 2012-12-24
  • 打赏
  • 举报
回复
引用 1 楼 fzfei2 的回复:
a.asp .... <iframe src="b.asp" ></iframe> .... b.asp //3秒刷新 <head> <meta http-equiv="refresh" content="3; "> </head>
由于页面需要,使用的<!--#include file="b.asp"--> 你的这种刷新方式我之前用过,当时a、b是一个页面,就是因为是整个页面都在闪烁刷新所以想改…… 拆分后在b.asp使用还是会导致整个页面刷新。
  • 打赏
  • 举报
回复
属性不闭合导致js出错了 <input type='button' name='Submit' value='请求' onClick='GetData('dataload.asp)'> ===>> <input type='button' name='Submit' value='请求' onClick='GetData("dataload.asp")'> 而且需要注意script设置src在非IE浏览器下只能响应一次firefox/chrome动态设置script加载js文件失败
fzfei2 2012-12-24
  • 打赏
  • 举报
回复
a.asp .... <iframe src="b.asp" ></iframe> .... b.asp //3秒刷新 <head> <meta http-equiv="refresh" content="3; "> </head>

28,404

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧