首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么IE会在兼容模式之外反复发送GET请求?

为什么IE会在兼容模式之外反复发送GET请求?
EN

Stack Overflow用户
提问于 2014-10-28 21:05:50
回答 2查看 547关注 0票数 1

我正在解决一个ASP web应用程序的问题,这个问题只发生在Internet中,而不是在兼容性视图中。从兼容性的角度来看,它工作得很好,在Firefox和Chrome中也是如此。页面的加载速度似乎很慢,但是在developer tools的“网络”选项卡中,我可以看到它正在执行数千个针对特定图像文件的GET请求,这些请求都是成功返回的。我无法想象为什么会发生这种事。

这是一个网络标签的截图,这样你就可以明白我的意思了。在本例中,IE成功地为同一个文件发出了6000多个GET请求。

编辑:,因为@pherris在注释中被请求,所以在CSS中将图像作为background-image属性引用为按钮(background-image: url(../images/btn_background.gif);)。

编辑2:,所以我知道了请求的数量来自哪里。该页正在显示包含2054行数据的网格。每行包含三个按钮和实际数据。每个按钮都使用上面的CSS来加载btn_background.gif映像。因此,从2054 * 3 = 6,162开始,这就解释了对该图像的6,000个请求。然而,为什么IE会请求相同的文件多次而不是简单地请求它一次?只有在不使用兼容性视图的IE中才会发生这种情况。它在Chrome和Firefox中运行得很好。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-10-29 15:11:14

我不确定回答自己问题的礼仪,但我找到了问题的原因。按钮上还有另一个CSS属性,导致请求发生:

代码语言:javascript
复制
/* The -ms-filter fits the image for IE8. */
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/btn_background.gif', sizingMethod='scale')";

我不熟悉-ms-filter,但我做了一些googling,这是一个不推荐的MS特定的CSS属性。我找到它是因为我正在查找对btn_background.gif的所有引用,这样我就可以像@pherris建议的那样用数据URI方案替换它们,并且我看到它也在这个属性中被引用。我把它注释掉了,很确定,这个页面现在工作得很好。我甚至启动了一个带有IE8的VM,并在那里进行了测试,那里也没有任何问题,尽管注释表明这个属性是用于IE8兼容性的。

票数 2
EN

Stack Overflow用户

发布于 2014-10-29 14:13:41

您可以查看与图像一起发送的头文件,并对您正在使用的特定IE版本进行故障排除,但在这一点上,我建议base64在您的CSS中对图像进行编码。这甚至可以避免一个http请求(对于图像),并且您可以完全在客户端上进行更改。

CSS将更改为类似的内容(其中字符串是编码的图像):

代码语言:javascript
复制
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAIAAACRXR/mAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vFGNjQ4NjJBOTExMUUyOTRGRTk2MjkwRUNBMjZDNSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpENTFGNjQ4NzJBOTExMUUyOTRGRTk2MjkwRUNBMjZDNSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PuT868wAAABESURBVHja7M4xEQAwDAOxuPw5uwi6ZeigB/CntJ2lkmytznwZFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYW1qsrwABYuwNkimqm3gAAAABJRU5ErkJggg==);

要对图像进行base64编码,可以使用在线转换工具:

http://webcodertools.com/imagetobase64converter

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26618481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档