Kev*_*vin 8 html browser asp.net internet-explorer timeout
我有一个内部应用程序页面,显示使用Web服务从文档存储系统流式传输的文档图像.我遇到的问题是,当用户进行搜索时,他们可能会获得数百次点击,我必须在一个大页面上显示,这样他们就可以打印出来.这在Firefox中运行良好,但在IE中它会在一段时间后停止加载图像,所以我得到一百左右的显示,其余的只有破碎的图像符号.我可以在某个地方更改此超时吗?
Jos*_*ody 10
如果问题确实是超时,您可以通过使用"延迟加载"脚本并仅在加载现有图像后将新图像添加到文档中来解决此问题.
有很多方法可以做到这一点,但这是一个简单的例子,我把它拼凑在一起并进行测试.而不是这个:
<img src="image001.jpg" />
<img src="image002.jpg" />
<img src="image003.jpg" />
<img src="image004.jpg" />
<!-- Etc etc etc -->
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
<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>
Run Code Online (Sandbox Code Playgroud)
只有在上一个图像加载(或无法加载)后,每个图像才会添加到页面中.如果您的浏览器超时,我认为这将解决它.
当然,问题可能实际上不是超时,而是你的内存/系统资源不足而IE正在放弃.或者可能存在像Sra所说的IE DOM限制.
没有最终的解决方案,但有一些提示...我认为 ie Dom 挂了。我在其他案例中也见过这种情况。我只需要显示图像并使用一个js,在图像聚焦时加载图像,但我认为如果你直接点击打印,那么就需要工作。您可以使用新的 css 功能直接存储图像数据而不是链接吗?那应该可以解决你的问题。我不太确定,但我认为从 ie 7 开始就支持它
| 归档时间: |
|
| 查看次数: |
3444 次 |
| 最近记录: |