Ajax刷新不会刷新Javascript

时间:2013-11-16 06:36:01

标签: javascript jquery ajax jsp

我有一个JSP页面,使用ajax每5秒刷新一次。 我调用的页面有没有刷新的javascript。 请告诉我如何实现这一目标。

以下是我用来刷新该页面的代码。

refresh是我显示数据的div的名称。

<script type="text/javascript">
    function AutoRefresh() {
        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 () {
            //alert("hi");
            if (xmlHttp.readyState == 4) {

                document.getElementById('TotalRoutes').innerHTML = xmlHttp.responseText;

                setTimeout('AutoRefresh()', 10 * 1000); // JavaScript function calls AutoRefresh() every 3 seconds
            }
        }
        xmlHttp.open("GET", "QAGENIE.jsp", true);

        xmlHttp.send(null);
    }
</script>

此处QAGENIE.jsp页面中的js文件未在ajax调用中刷新

3 个答案:

答案 0 :(得分:0)

每5秒

setTimeout(AutoRefresh,5000);

if (xmlhttp.readyState==4 && xmlhttp.status==200)

window.onload = AutoRefresh();

答案 1 :(得分:0)

我认为你不是第一次调用AutoRefresh函数。所以什么都不会执行。如果您从您在此处提供的代码之外打电话,请发布有问题的整个网页代码。

答案 2 :(得分:0)

当您致电document.getElementById('TotalRoutes').innerHTML=xmlHttp.responseText;时,"QAGENIE.jsp" 内的脚本标记未执行 ,原因如下:

  

QAGENIE.jsp页面中的js文件没有刷新。

由于问题是使用jQuery标记的,因此您可以尝试使用$.ajax$.html。像这样:

 function AutoRefresh(){
       $.ajax({
          url:"QAGENIE.jsp"
       })
       .done(function(response){
           $("#TotalRoutes").html(response);
           setTimeout(AutoRefresh,10*1000); 
       });
    }

AutoRefresh(); //call this to trigger the first call
  • $.html自动在响应HTML中解析并执行脚本标记。
  • 还有一件事需要注意的是浏览器缓存,如果你的js文件是可缓存的(通常是来自服务器的缓存响应头),js文件可以从缓存中提供。如果需要始终使用新的js文件进行刷新,请确保不使用缓存头返回js文件,或尝试在脚本标记的末尾附加随机字符串。像这样:

    <script src="yourFile.js?[randomstring]"></script>