我有一个使用ajax每5秒刷新一次的JSP页面。我正在调用的页面拥有未被刷新的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调用中得到刷新。
发布于 2013-11-16 14:39:54
每5秒setTimeout(AutoRefresh,5000);
if (xmlhttp.readyState==4 && xmlhttp.status==200)
window.onload = AutoRefresh();
发布于 2013-11-16 15:00:45
我认为您第一次调用的不是AutoRefresh函数。因此不会执行任何东西。如果你是从你在这里给出的代码之外调用的,那么请发布整个网页代码。
发布于 2013-11-16 15:11:11
当您调用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
自动解析并执行响应超文本标记语言中的脚本标记。<script src="yourFile.js?[randomstring]"></script>
https://stackoverflow.com/questions/20015554
复制相似问题