我正在编写一个Web应用程序,它涉及在网页上创建(和删除)大量图像的连续循环.每个图像由服务器动态生成.
var img = document.createElement("img"); img.src = "http://mydomain.com/myImageServer?param=blah";
在某些情况下,其中一些图像在完成下载之前比它们的实用性更长.那时,我从DOM中删除它们.
问题是浏览器即使在从DOM中删除后仍继续下载这些图像.这造成了瓶颈,因为我有新的图像等待下载,但他们必须等待旧的不需要的图像先完成下载.
我想中止那些不需要的图像下载.显而易见的解决方案似乎是通过AJAX请求二进制图像数据(因为AJAX请求可以中止),并在下载完成后设置img.src:
// Code sample uses jQuery,but jQuery is not a necessity var img = document.createElement("img"); var xhr = $.ajax({ url: "http://mydomain.com/myImageServer?param=blah",context: img,success: ImageLoadedCallback }); function ImageLoadedCallback(data) { this.src = data; } function DoSomethingElse() { if (condition) xhr.abort(); }
但问题是这条线路没有按照我希望的方式工作:
this.src = data;
我搜索过高低.有没有办法将图像源设置为通过AJAX发送的二进制图像数据?
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。