加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 22:19:44 所属栏目:asp.Net 来源:网络整理
导读:我有一个内部应用程序页面,显示使用Web服务从文档存储系统流式传输的文档图像.我遇到的问题是,当用户进行搜索时,他们可能会获得数百次点击,我必须在一个大页面上显示,这样他们就可以打印出来.这在Firefox中运行良好,但在IE中它会在一段时间后停止加载图像,所
我有一个内部应用程序页面,显示使用Web服务从文档存储系统流式传输的文档图像.我遇到的问题是,当用户进行搜索时,他们可能会获得数百次点击,我必须在一个大页面上显示,这样他们就可以打印出来.这在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限制.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读