小弟最近做的一个WEBMAIL的网页,需要从邮件服务器得到文件夹列表,然后动态的生成一个DIV或者TABLE, 但是有一个问题,就是虽然可以正常生成,但是一旦刷新页面以后,这个列表就没有了
有没有什么方法可以是一个TABLE生成以后无论如何刷新,都保留在页面上。
这是生成DIV的代码:
function display_folder(){
              var xmlDoc = xmlHttp2.responseXML;
              var record = xmlDoc.getElementsByTagName("foldername");
              //window.alert(xmlDoc.xml);
              var div = document.getElementById("sideBar");
              var i;
              var side = document.createElement("div");
              for(i=0;i<record.length;i++){
                     attach_span=document.createElement("div");
                     var folder_name = document.createTextNode(record[i].childNodes[0].nodeValue);
                     attach_span.style.cursor='hand';
       
                     attach_span.setAttribute("id",i.toString());
                      attach_span.onclick=test;
                     attach_span.appendChild(folder_name);
                     side.appendChild(attach_span);
              }
               side.style.borderStyle="solid";
               side.style.borderWidth="4px";
               side.style.borderColor="white";
               //side.style.backgroundColor="black";
               div.appendChild(side);
        }

解决方案 »

  1.   

    是不是因为这里,我必须出发一个ONCLICK事件,调用这个函数,然后才可以从后台的得到数据,那这样,如果我不触发此事件,自然就回一刷新,数据就消失了。如果这样,怎么做才能保证数据刷新不消失呢?
    function display_prompt(){
                  var date = new Date();
                  var url="account.html?date="+date;
                  var vReturnValue = window.showModalDialog(url);
                  var input = vReturnValue.split("/");
                  var host=input[0];
                  var user=input[1];
                  var pwd =input[2];
                  var security=input[3];
           
                  var url_servlet = "servlet/CreateTable?security="+input[3]+"&host="+input[0]+"&user="+input[1]+"&pwd="+input[2];
           
                  if(window.ActiveXObject){
                         xmlHttp2=new ActiveXObject("Microsoft.XMLHTTP");
                  }
                  else if(window.XMLHttpRequest){
                         xmlHttp2=new XMLHttpRequest();
                  }
                  window.alert(url_servlet);
                  xmlHttp2.open("GET",url_servlet,true);
                  xmlHttp2.onreadystatechange=folder_state;
                  xmlHttp2.send(null);
            }如果是这样,有没有什么方法可以一直保留的?
      

  2.   

    我想过这个问题,用COOKIES或者SESSION来做。 但是问题如果用户多次输入,而且多次输入的值我都要保存,那应该怎么办?比如第一个用户输入EMAIL: [email protected] 密码1234,我保存,那用户第二次输入[email protected] 密码2222 这样如果用COOKIE或者SESSION不就把第一个覆盖了?
      

  3.   

    用javascript在客户端添加的任何东西,没有在服务器端保存,所以如果发起会话,那么客户端后来添加的数据就没有了。如果楼主只能用客户端晚添加的方式,那么建议楼主把所有控件都用客户端空间,并结合Ajax方法来处理。否则,保存后天加数据的开销太大,影响系统的使用。