JavaScript动态清除

JavaScript动态清除。

两日前在修改ASP.NET中涉及到修改既有的一个调用Ajax 命名的方法,然后发布出去。

昨日,客户反馈画面显示不正常。 一脸愣逼,第一反应是IE的配置,客户的实际PC环境情况也不清晰。只能胡乱猜想。

大体往两个方向做猜想:1,IE的配置变动;2,代码的漏洞。

沿着这个思路,去查找。两个人一下午,并没有发现新的思路。

最终,Partner在请教其它SE后,得出了一解决方法: 

代开Internet Option ⇒ General ⇒ Setting ⇒ Internet Temp file ⇒  First Option 选择

默认情况下, 被选中的是第三项:自动确认。改成网页表示时自动确认。


事后诸葛:

 本次修改对象,前段时如下的Script,后台则是数据读取过程中的DB内容:
function GetYusyuTusyaMei() {
    if ($("txtInputer").value.replace(/s+/g, "").length == 0) {
        return;
    }
    var xmlhttp;
    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    }
    else {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            var ReturnStr = xmlhttp.responseXML.documentElement;
            $("txtYunyusyaMei").value = ReturnStr.childNodes[0].text;
            $("txtYunyusyaMei").title = ReturnStr.childNodes[0].text;
            $("txtNaccsCd").value = ReturnStr.childNodes[1].text;
            $("txtNaccsCd").title = ReturnStr.childNodes[1].text;
        }
    }
    xmlhttp.open("GET", location.href + "?TukanTokuisaki=" + escape($("txtInputer").value), true);
    xmlhttp.send();
}
并非直接修改的Aspx文件,而是其背后的JavaScript。仍属于画面变动。 画面加载过程中,默认从缓存中读取之前的代码。没有从服务器中读取。

换言之,是没精细的识别到服务器中JavaScrip做了变更,进而沿用本地的缓存页面。后台数据的读取则是对服务器端上已更新过的DLL进行操作。

导致新数据的反应在旧的页面上。由此产生了客户当前的怪现象。

 另外可以澄清一个之前的模糊猜想: 

当页面在缓存中保存时,于后台间的数据交换并不会直接与缓存关联。即:当Ajax等交互操作发生时,便往后台调用。当然后台Web端与DB端是如何

进行数据的缓存等操作则是本次讨论的议题之外。


Love it, and you live without it
原文地址:https://www.cnblogs.com/tomclock/p/7651227.html