asp.net - Internet Explorer 中的图像加载超时

标签 asp.net html internet-explorer browser timeout

我有一个内部应用程序页面,该页面显示使用网络服务从文档存储系统流式传输的文档图像。我遇到的问题是,当用户进行搜索时,他们可能会获得数百次点击,我必须将这些点击显示在一个大页面上,以便他们可以将它们全部打印出来。这在 Firefox 中工作正常,但在 IE 中它会在一段时间后停止加载图像,所以我显示了一百个左右,其余的只有损坏的图像符号。有什么地方可以更改此超时设置吗?

最佳答案

如果问题确实是超时,您可以通过使用“延迟加载”脚本并仅在加载现有图像后才向文档中添加新图像来解决此问题。

有很多方法可以做到这一点,但这里有一个我放在一起测试的简单示例。而不是这个:

<img src="image001.jpg" />
<img src="image002.jpg" />
<img src="image003.jpg" />
<img src="image004.jpg" />
<!-- Etc etc etc -->

你可以这样做:

<div id="imgsGoHere">
</div>

<script type="text/javascript">
    function crossBrowserEventAttach(objectRef, eventName, functionRef)
    {
        try {
            objectRef.addEventListener(eventName, functionRef, false);
        }
        catch(err) {
            try {
                objectRef.attachEvent("on" + eventName, functionRef);
            }
            catch(err2) {
                // event attachment failed
            }
        }
    }


    function addImageToPage()
    {
        var newImageElement = document.createElement("img");
        newImageElement.src = imageArray[nextImageNumber];

        var targetElement = document.getElementById("imgsGoHere");
        targetElement.appendChild(newImageElement);

        nextImageNumber++;

        if (nextImageNumber < imageArray.length) {
            crossBrowserEventAttach(newImageElement, "load", addImageToPage);
            crossBrowserEventAttach(newImageElement, "error", addImageToPage);
        }
    }

    var nextImageNumber = 0;

    var imageArray = new Array();
    imageArray[imageArray.length] = "image001.jpg";
    imageArray[imageArray.length] = "image002.jpg";
    imageArray[imageArray.length] = "image003.jpg";
    // .
    // .
    // .
    // Snip hundreds of rows
    // .
    // .
    // .
    imageArray[imageArray.length] = "image999.jpg";

    addImageToPage();
</script>

每个图像仅在前一个图像加载(或加载失败)后添加到页面。如果您的浏览器超时,我认为这会解决问题。

当然,问题实际上可能不是超时,而是您的内存/系统资源不足,IE 正在放弃。或者可能存在像 Sra 所说的 IE DOM 限制。

关于asp.net - Internet Explorer 中的图像加载超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5731081/

相关文章:

javascript - 在 JS 中获取文档上的当前页面访问者

javascript - 使某些元素在视口(viewport)中可见

javascript - IE 在提交时清除输入[类型 ="file"]

c# - 如何从代码隐藏属性中获取样式属性的值?

c# - 有条件地禁用 ASP.NET MVC Controller

javascript - 显示 HTML 而不是浏览器警报

css - 渐变动画使 CSS 无法在 Internet Explorer/Edge/Safari 上正确显示

c# - asp.net 在 webform 上自动生成文本框 ID

asp.net - 如何确定 ASP.NET 日历显示的整个日期范围?

javascript - 用于使用命名空间解析 XML 的 JavaScript 库?