Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 刷新包含JSP代码段的DIV元素_Javascript_Jsp_Html_Reload - Fatal编程技术网

Javascript 刷新包含JSP代码段的DIV元素

Javascript 刷新包含JSP代码段的DIV元素,javascript,jsp,html,reload,Javascript,Jsp,Html,Reload,我有一个JSP页面,在这里我正在读取我在会话中设置的会话属性 我希望定期读取会话属性。我不想重新加载整个页面,我只是将JSP会话读取属性保留在DIV中,并尝试重新加载DIV,但它并没有重新加载DIV 以下是我的代码库: <html> <head> // Loading CSS and Script files </head> <body> <div id="loadData" style='display:none;'

我有一个JSP页面,在这里我正在读取我在会话中设置的会话属性

我希望定期读取会话属性。我不想重新加载整个页面,我只是将JSP会话读取属性保留在DIV中,并尝试重新加载DIV,但它并没有重新加载DIV

以下是我的代码库:

<html>
  <head>
  // Loading CSS and Script files
  </head>
  <body>
    <div id="loadData" style='display:none;'>
         <% 
           String strStatus = String.valueOf(session.getAttribute("Status")) ;
          %>
    </div>
  </body>
  <script type="text/javascript">
    var reqStatus = '<%= strStatus %>';

    $(this).load(function(){
       setInterval(function() {
            $("#loadData").load();
          } ,1000);
     });
     $("#loadData").load(function(){
        if(reqStatus == 'Done') {
        // My Code goes here..
        }
     });
</html>

//加载CSS和脚本文件
var reqStatus='';
$(this.load(function()){
setInterval(函数(){
$(“#加载数据”).load();
} ,1000);
});
$(“#加载数据”).load(函数(){
如果(reqStatus==“完成”){
//我的代码在这里。。
}
});

也欢迎任何更好的想法。

JSP中的代码在生成的HTML发送到浏览器之前被编译/执行。不能在呈现时重新加载页面的一部分,并期望其更改。您可能需要创建一个隐藏的iframe并完全(轻松地)重新加载它,或者创建一个Web服务来查询参数(更难)。

您的JSP代码只在页面首次加载时计算一次。当JSP代码运行时,会生成HTML并发送到浏览器。你不能像那样“重新加载”一个div;JSP代码将不会运行

您可以将JSP代码放入一个单独的文件中,然后使用
jQuery.load
将该页面加载到div中:

jQuery(document).ready(function() {
   setInterval(function() {
       jQuery('#loadData').load('/status.jsp');
   }, 1000);
}
status.jsp
将只包含一行:

<%= String.valueOf(session.getAttribute("Status")) ; %>

JSP在服务器上呈现一次,然后发送到客户端,之后Java代码什么也不做。如果希望以不同的时间/频率加载HTML/javascript代码和Java代码,则不能将它们放在同一个文件中

将其放入一个单独的.jsp文件:

<%= String.valueOf(session.getAttribute("Status")) ; %>

如何“完全”重新加载iframe?我试过了,在Firefox和IE的vista机器上工作得很好。但不能在Windows7操作系统上使用IE8。因此,还有其他的事情我需要考虑在IE 8上的Win 7操作系统。@复用器,我想不会。vista机器上的IE版本是什么?我在vista和Windows 7机器上都使用IE 8。
var reloadStatus = function () {
    $.ajax("/checkStatus.jsp", function (data) {
        if (data == "Done") {
            // Your code here
        }
    });
};

setInterval(reloadStatus, 1000);