Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.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 导致重大问题的HTA文件缓存_Javascript_Ajax_Internet Explorer_Caching_Hta - Fatal编程技术网

Javascript 导致重大问题的HTA文件缓存

Javascript 导致重大问题的HTA文件缓存,javascript,ajax,internet-explorer,caching,hta,Javascript,Ajax,Internet Explorer,Caching,Hta,我有一个JavaScript函数,它首先获取label元素的值,它是数据库条目的ID。然后将这些ID发送到ASP页面,该页面从数据库中获取图像保存位置 然后将每个选定图像的保存位置信息发送到ASP.NET页面,该页面将拆分每个图像保存位置并相应地旋转图像。这一切都很完美,我唯一的问题是,图像将不会更新,直到我重新打开HTA文件 如视频中所示,刷新不起作用 文件已经旋转,正如您在底部的视频中看到的那样 下面是我的JavaScript,它执行以下操作: function doRotate(di

我有一个JavaScript函数,它首先获取label元素的值,它是数据库条目的ID。然后将这些ID发送到ASP页面,该页面从数据库中获取图像保存位置

然后将每个选定图像的保存位置信息发送到ASP.NET页面,该页面将拆分每个图像保存位置并相应地旋转图像。这一切都很完美,我唯一的问题是,图像将不会更新,直到我重新打开HTA文件

  • 如视频中所示,刷新不起作用

  • 文件已经旋转,正如您在底部的视频中看到的那样

下面是我的JavaScript,它执行以下操作:

function doRotate(dir,obj)
{
    var http = getHTTPObject();
    var http2 = getHTTPObject();
    ids = fetchSelection().toString();

    //Make button animate, visual aid that it is working
    obj.src = "http://localhost/nightclub_photography/images/buttons/"+dir+"_animated.gif";

    http.onreadystatechange = function() 
    {
        //Fetch the save location of selected images
        if (http.readyState == 4 && http.status == 200) {
            //Create URL string to send to rotate script
            var locs = http.responseText;
            locs = locs.split(",");

            //Start of URL 
            var url = "http://localhost/nightclub_photography/net/rotate_script.aspx?dir=" + dir;

            for (var i=0; i < locs.length-1; i++)
            {
                url = url + "&t=" + locs[i];
            }
            //Add random math
            url = url + "&k=" + Math.random();

            http2.onreadystatechange = function() 
            {                   
                if (http2.readyState == 4 && http2.status == 200)
                {

                    //Stop animated button
                    obj.src = "http://localhost/nightclub_photography/images/buttons/"+dir+".png";

                    //Split id's
                    var idsSplit = ids.split(",");
                    for (var k=0; k < idsSplit.length; k++) {
                        reapplyStyle(idsSplit[k]);
                    }
                }
            }
            http2.open("GET", url);
            http2.send();
        }
    }
    http.open("GET", "http://localhost/nightclub_photography/asp/returnDatabaseData.asp?ids="+ids+"&k=" + Math.random());
    http.send();
}

如果是缓存问题,您是否尝试过使图像url唯一。试着这样做:

ts = new Date().getTime();
obj.src = "http://localhost/nightclub_photography/images/buttons/"+dir+".png?timestamp=" + ts;

我显示内容的方式是使用Ajax将其全部拉入,因为除非使用iframe,否则无法使用HTA文件加载不同的页面。所以我一直在用一个唯一的数字把内容拉进去,所以我认为这会奏效。我也会尝试在每张照片的末尾添加一个唯一的数字。不过,当我回到家时,谢谢,没有想到解决这个问题的“正确”方法是在图像上适当地设置缓存控制响应头,但是在URL的末尾添加一个唯一的数字是一个简单的解决方法。
ts = new Date().getTime();
obj.src = "http://localhost/nightclub_photography/images/buttons/"+dir+".png?timestamp=" + ts;