当前位置:编程学习 > C#/ASP.NET >>

关于用AJAX技术使页面定时刷新?在线等~~~

我用的是VS2003,C#,WEB程序。现在我要我的页面每隔10秒刷新一次,但是又不想让用户感觉到刷新效果,所以希望用AJAX技术实现刷新,希望高手指教,有实例更好。谢谢!!! --------------------编程问答-------------------- up --------------------编程问答-------------------- js : winpopup --------------------编程问答-------------------- function createXMLHttpRequest()
{
    var g_xhRequest=null;
try
{
g_xhRequest= new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
    g_xhRequest=null;
}
if(g_xhRequest==null)
{
    try
    {
    g_xhRequest=new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch(e)
    {
        g_xhRequest=null;
    }
    if(g_xhRequest==null)
    {
        try
        {
        g_xhRequest= new XMLHttpRequest();
        }
        catch(e)
        {
            g_xhRequest= null;
        }
    }
}
return g_xhRequest;
}


function SendRequest(url,callback)
{
    var g_xhRequest=null;
g_xhRequest=createXMLHttpRequest();
if(g_xhRequest!=null&&(g_xhRequest.readyState!=0&&g_xhRequest.readyState!=4))
{
g_xhRequest.abort();
}
g_xhRequest=createXMLHttpRequest();
if(g_xhRequest==null)
{
window.status="Global: XMLHttpRequest not supported";
}
try
{     
g_xhRequest.onreadystatechange=createFunction(null,"updatePage",callback,g_xhRequest);
g_xhRequest.open("GET",url,true);
g_xhRequest.send(null);
}catch(e)
{
window.status="Global: XMLHttpRequest Send Error:["+e+"]";
}
}
function updatePage(callback,g_xhRequest) 
 {
if(g_xhRequest.readyState == 4)
{
if(g_xhRequest.status == 200)
{
       callback(g_xhRequest.responseText);     
}
else if (g_xhRequest.status == 404)
{
window.status="File lost!";
}
else if (g_xhRequest.status == 500)
{
window.status="server Error!";
}
else
{
window.status="Error: status code is " + g_xhRequest.status;
}
}
}
//========================通讯框架==============================
//========================消息框架==============================
//将有参数的函数封装为无参数的函数 
function createFunction(obj,strFunc)

 var args=[];  //定义args用于存储传递给事件处理程序的参数 
 if(!obj)obj=window; //如果是全局函数则obj=window; 
 //得到传递给事件处理程序的参数 
 for(var i=2;i<arguments.length;i++)args.push(arguments[i]); 
 //用无参数函数封装事件处理程序的调用 
 return  function(){ obj[strFunc].apply(obj,args);}//将参数传递给指定的事件处理程序 

//========================消息框架================== --------------------编程问答-------------------- setTimeout();

==================================
小小姑娘
清早起床
提着裤子上茅房
茅房有人,没有办法
只好拉在裤子上..................
QQ:18163708;765835
MSN:yoursunboy@msn.com
Gtalk:yoursunboy@gmail.com
================================== --------------------编程问答-------------------- 问题解决不了 --------------------编程问答-------------------- var xmlhttp = false;
function initajax(){
if(!xmlhttp){
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("GET","***",true);
xmlhttp.onreadystatechange=getresult;
}
xmlhttp.send(null);
}
}

function getresult(){
setInterval("initajax()",2000); 
} --------------------编程问答-------------------- 可惜你用的是vs2003,如果是2005的话用异步回调实现很容易,我这有现成的例子.既然是2003那就只能用ajax了,不过也不是很麻烦,对了,你是页面刷新还是局部刷新?将绑定数据的js方法重复执行就可以了,如下:
  function <%#this.ClientID%>_CallBack(){
     <%# Page.ClientScript.GetCallbackEventReference( this, "", this.ClientID + "_GetResult", "")%>;  
  }
  
  function <%#this.ClientID%>_GetResult(result){
    if(result!="")
    {
      document.getElementById("TestSession1").innerHTML+=result;     
      document.getElementById("TestSession1").scrollTop +=99999999; 
               
    }
  }    
  i=window.setInterval("<%#this.ClientID%>_CallBack()",100000);  //隔10秒执行一次 --------------------编程问答-------------------- 我的是整个页面都要刷新 --------------------编程问答-------------------- up --------------------编程问答-------------------- 没有人指教吗? --------------------编程问答-------------------- 要是后台偷着刷也可以做成线程在后面跑 --------------------编程问答-------------------- magicajax,直接用就可以,网上很多 --------------------编程问答-------------------- magicajax只是刷新它里面的控件,我要的是整个页面的刷新 --------------------编程问答-------------------- magicajax只是刷新它里面的控件,我要的是整个页面的刷新
------------------------------------------------------
你把<body>里的代码全放在magicajax中不就行啦 --------------------编程问答-------------------- 刷新整个页面的话,楼上的应该可行... --------------------编程问答-------------------- 就没有人帮帮我吗?我的问题还是解决不了啊,希望有高手帮帮我,谢谢了 --------------------编程问答-------------------- 添加magicajax.dll
配置:
<httpModules>
<add name="MagicAjax" type="MagicAjax.MagicAjaxModule, MagicAjax" /> 
</httpModules>

页面添加:
<%@ Register TagPrefix="ajax" Namespace="MagicAjax.UI.Controls" Assembly="MagicAjax" %>并且添加到工具箱

将你要刷新的部分放在<ajax:AjaxPanel id="AjaxPanel1" runat="server">
]65464464646
</ajax:AjaxPanel>里面

在后台设置刷新间隔时间:
if (!IsPostBack)

        {

            //每1秒刷新 

            MagicAjax.AjaxCallHelper.SetAjaxCallTimerInterval(1000);

        }




--------------------编程问答-------------------- ustbwuyi() :
呵呵,你说的这个我也知道,但是我的页面上的控件是在后台程序创建的,根据从数据库中提取的坐标,来定位控件在页面上的位置。所以我希望刷新页面的时候,刷新控件的内容。用MagicAjax实现不了 --------------------编程问答-------------------- 希望高手能帮我 --------------------编程问答-------------------- setInterval --------------------编程问答-------------------- setInterval/setTimeout() --------------------编程问答-------------------- kaiyao() ( ) 信誉:100    Blog  2007-02-07 15:18:28  得分: 0  
 
 
   ustbwuyi() :
呵呵,你说的这个我也知道,但是我的页面上的控件是在后台程序创建的,根据从数据库中提取的坐标,来定位控件在页面上的位置。所以我希望刷新页面的时候,刷新控件的内容。用MagicAjax实现不了
  
 
晕......那就有点头疼了...貌似不太好处理..我想想. --------------------编程问答-------------------- 做成SVG图象就可以了 --------------------编程问答-------------------- up --------------------编程问答-------------------- 学习 --------------------编程问答-------------------- 定时器 --------------------编程问答-------------------- 使用UpdatePanel加Timer --------------------编程问答-------------------- 既要刷新还不能让用户看出刷新效果对吧? --------------------编程问答-------------------- 关注,帮顶。 --------------------编程问答-------------------- 关注,帮顶。 --------------------编程问答-------------------- 1.添加scriptmanager

2.添加UpdatePanel

3.添加按钮,留<ContentTemplate></ContentTemplate>

4.再最下面添加 timer --------------------编程问答--------------------  <asp:ScriptManager ID="ScriptManager1" runat="server">
                    </asp:ScriptManager>
                   
        
        <div >
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>

               
    <asp:Timer ID="Timer1" runat="server" Interval="2000" ontick="Timer1_Tick">
    </asp:Timer>
                </ContentTemplate>
            </asp:UpdatePanel>
    
    </div>[/align] --------------------编程问答-------------------- webform?默认请求页面上的时候,返回的是整个画面的html,然后用js把获取的html的body替换掉现在body中的内容。
但是不理解这是个什么需求,居然要刷新整个画面
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,