ajax javascript函数刷新

时间:2013-02-15 21:16:17

标签: ajax

我认为我的问题很奇怪...我在这里学习,并希望使用AJAX& JSP按顺序显示一些其他JSP页面。 即单击按钮:显示page1.jsp,再次单击按钮:显示page2.jsp,...

我让JSP在页面之后添加'1',JSP确实增加了变量。但它并没有改变第1页的价值......

如果我执行location.reload(),它会在函数中正确递增,但这当然会让我回到第一页......

我确信还有其他方法可以做到这一点,但我只是希望这可以使用JSP ...任何想法

    <!DOCTYPE html>
<html>
<head>
<%! int n = 0;%>
<script>

function loadDoc() {
<% n = n+1; %>
var xmlhttp;

if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }

xmlhttp.open("GET","page<%=n%>.jsp",true);
xmlhttp.send();
}
</script>
</head>
<body>
<div id="myDiv"><h2>Using AJAX to display next page</h2></div>
<button type="button" onclick="loadDoc()">Change Page</button>
</body>
</html>

1 个答案:

答案 0 :(得分:1)

每次

n为0。你需要保存n。尝试使用

<input type="hidden" value="0" id="countvariable" />

在你的html某处。

然后在loadDoc()中放入

var n = 1 + parseInt(document.getElementById("countvariable").value);
document.getElementById("countvariable").value = n;

这应该保存你的变量。另外,parseInt是必须的,否则javascript会将2加在一起,你将得到10作为n而不是1。

更新:如果您想在一定数量的页面后返回,请将其添加到最后。

if(n == 2)
{
   document.getElementById("countvariable").value = 0;
}