簡體   English   中英

IE中的部分頁面刷新

[英]Partially page refreshing in IE

我需要刷新頁面的一部分,並且使用此腳本,該腳本在FF和Chrome中有效,但在IE中不起作用。

<script language="JavaScript">
<!--
var page = "ASP/include/ithome.asp";
var MyDelay = function () { ajax(page, 'scriptoutput'); };
function ajax(url,target)
 {
    // native XMLHttpRequest object
   document.getElementById(target).innerHTML = 'sending...';
   if (window.XMLHttpRequest) {
       req = new XMLHttpRequest();
       req.onreadystatechange = function() {ajaxDone(target);};
       req.open("GET", url, true);
       req.send(null);
   // IE/Windows ActiveX version
   } else if (window.ActiveXObject) {
       req = new ActiveXObject("Microsoft.XMLHTTP");
       if (req) {
           req.onreadystatechange = function() {ajaxDone(target);};
           req.open("GET", url, true);
           req.send();
       }
   }
           setTimeout(MyDelay, 12000);
}

function ajaxDone(target) {
// only if req is "loaded"
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200 || req.status == 304) {
results = req.responseText;
document.getElementById(target).innerHTML = results;
} else {
document.getElementById(target).innerHTML="ajax error:\n" +
req.statusText;
}
}
}

function winOp(link, width, height) {
    window.open(link, '', 'toolbar="no",scrollbars=no,resizeable="no",height=' + height + ',width=' + width + '');
}

// -->
</script>
<body background="images/Pattern.gif" onload="ajax(page,'scriptoutput')">
...

我以為問題出在setTimeout中,但是當我調試頁面時,它看起來可行。 也許req.open(“ GET”,url,true)從緩存中打開了ASP頁。 你可以幫幫我嗎?

謝謝

L.

您說對了,這是對的:

也許req.open("GET", url, true)從緩存中打開了ASP頁

如果是通過GET請求,則IE將緩存Ajax響應。 只需執行以下操作即可(這將使所有請求都具有唯一的查詢字符串,因此緩存不會成為問題):

req.open("GET", [url, "&_=", new Date().getTime()].join(""), true);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM