加载文件时xmlhttp不稳定,如何解决?

时间:2013-12-03 01:17:33

标签: javascript xmlhttprequest

我有一个代码,用于在输入值更改时加载文本文件:

function ch_name_registration_load_onchange()
{
for(var i=1;i<11;)
                {
                    for(var j=2;j<11;)
                    {
                        temp='ch_name_registration_'+i+j;
                        el = document.getElementById(temp);

                        el.innerHTML='';

                        j++;
                    }
                    i++;
                }
var page;
switch(ch_name_registration_value)
    {
    case 'A':
    page=1;
    break;
    case 'B':
    page=2;
    break;
    case 'C':
    page=3;
    break;
    case 'D':
    page=4;
    break;
    case 'E':
    page=5;
    break;
    case 'F':
    page=6;
    break;
    case 'G':
    page=7;
    break;
    case 'H':
    page=8;
    break;
    case 'I':
    page=9;
    break;
    }
    var count=0;
    count = parseInt(count,10);
    var xmlhttp;
    var temp;
    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()
    {
    var el
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
            var arr = [];
            arr = xmlhttp.responseText.split("\t");
            for(var i=1;i<11;)
                {
                    for(var j=2;j<11;)
                    {
                        temp='ch_name_registration_'+i+j;
                        el = document.getElementById(temp);


                        el.innerHTML = arr[count]; //display output in DOM
                        if(el.innerHTML =='undefined')
                        el.innerHTML='';
                        count=count+1;
                        j++;
                    }
                    i++;
                }


        }
    }
    xmlhttp.open("GET","CHNAME"+page+".txt",true);
    xmlhttp.send();
}

当我用记事本更改1个文件的内容并在浏览器中重新加载时,有时它会正常工作,有时会加载旧文件。我不知道为什么它加载旧文件而不是当前文件。

1 个答案:

答案 0 :(得分:0)

这肯定是一个缓存问题。

如果要强制浏览器始终重新加载txt文件,常用的技巧是生成唯一的URL。例如:

xmlhttp.open("GET","CHNAME"+page+".txt?_ts="+new Date().getTime(),true);