如何刷新按钮上的点击

问题描述:

我需要你的帮助,做ajax部分来刷新点击“刷新”按钮上的div。我需要一个例子。如何刷新按钮上的点击

我试图按照我在互联网上找到的例子刷新evey 15秒。

,但它没有工作,可以请你帮

下面是我的代码:

<script type="text/javascript"> 
function Ajax(){ 
    var xmlHttp; 
    try{  
     xmlHttp=new XMLHttpRequest();// Firefox, Opera 8.0+, Safari 
    } 
    catch (e){ 
     try{ 
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer 
     } 
     catch (e){ 
      try{ 
       xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); 
      } 
      catch (e){ 
       alert("No AJAX!?"); 
       return false; 
      } 
     } 
    } 

    xmlHttp.onreadystatechange=function(){ 
     if(xmlHttp.readyState==4){ 
      document.getElementById('ReloadThis').innerHTML=xmlHttp.responseText; 
      setTimeout('Ajax()',10000); 
     } 
    } 
    xmlHttp.open("GET","MQSTATUS.jsp",true); 
    xmlHttp.send(null); 
} 

window.onload=function(){ 
    setTimeout('Ajax()',10000); 
} 
</script> 

它给我的错误是在该行未知的运行时错误

<code> 
    xmlHttp.open("GET","MQSTATUS.jsp",true); 
</code> 

我应该如何修改代码,我试图改变命名并做一些修改,但它不起作用。我试图把/之前的url

<code> 
    xmlHttp.open("GET","/MQSTATUS.jsp",true); </code> 
+3

你用jquery-ajax标记了你的问题。那你为什么不使用jquery?它具有快捷方法。 – 2012-01-02 12:57:03

我将首先分离XHR对象和AJAX调用的初始化和更新。这样,你只有一个XHR对象,并且它始终如一地告诉它做什么。 首先您从窗口对象的onload处理程序初始化XHR对象。然后,通过在刷新按钮的onclick处理程序中调用updateAjax(),向此对象发出新请求。它会是这个样子:

<script type="text/javascript"> 
var xmlHttp; 

function initAjax() { 
    try { 
     xmlHttp = new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari 
    } catch(e) { 
     try { 
      xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer 
     } catch(e) { 
      try { 
       xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
      } catch(e) { 
       alert("No AJAX!?"); 
       return false; 
      } 
     } 
    } 

    xmlHttp.onreadystatechange = function() { 
     if(xmlHttp.readyState == 4) { 
      document.getElementById('ReloadThis').innerHTML = xmlHttp.responseText; 
     } 
    } 
} 

function updateAjax() { 
    xmlHttp.open("GET", "MQSTATUS.jsp", true); 
    xmlHttp.send(null); 
} 

window.onload = function() { 
    initAjax(); 
} 
</script> 

然后在你的HTML把

<input type="button" value="Refresh" onclick="updateAjax()" /> 

希望这有助于你一点。

+0

感谢这项工程 – user1080320 2012-01-02 20:44:40

+0

我试过了,但没有奏效。它仍然显示未知的运行时错误并引用链接 – user1080320 2012-01-03 12:43:36

This可以是你要找的,使用jQuery。 Here的例子(你也可以在上一个链接中找到)

谷歌上的其他搜索显示了相同的方法:你“隐藏”div,然后你再次加载内容并显示它,通过链接需要的操作。不过,我不认为你可以只用javascript来做,你需要一个外部库(如jquery)

+0

由于jQuery是一个JavaScript库,你无法对它做任何事情,这是JavaScript无jQuery无法完成的。 – Flygenring 2012-01-02 13:07:50

+0

嗡嗡声,我只是意味着与jQuery很容易,但事实证明,这不是很好:) – 2012-01-02 13:32:09

+0

同意,jQuery使事情变得简单,但我认为这是有点多加载整个库只是为了做一点AJAX 。另外,我认为你不应该隐藏更新的div,只需加载新内容就可以工作。 – Flygenring 2012-01-02 13:51:14

尝试添加一个'UpdatePanel'AJAX控件到按钮控件。添加这种代码在按钮的Click事件:

<asp:UpdatePanel runat="server"> 
     <ContentTemplate>   
      <asp:Label ID="Label1" runat="server"></asp:Label> 
      <asp:Timer ID="timer1" Interval="500" runat="server" ontick="timer1_Tick"></asp:Timer> 
      <%--<asp:Button ID="Button1" runat="server" Text="Button" />--%> 
     </ContentTemplate> 
</asp:UpdatePanel> 
+1

OP不使用ASP。 – 2012-01-02 13:14:02

我不知道,但我觉得你应该先删除的setTimeout(“阿贾克斯()”,10000);在你的AJAX调用中。 其次,尝试添加此jsp的完整部署路径。 即。如果您的部署路径为http://localhost:8080/MYAPPLICATION/MQSTATUS.jsp,那么请尝试xmlHttp.open(“GET”,“/ MYAPPLICATION/MQSTATUS.jsp”,true);