0

我在一个网站上工作,您可以通过按键快速浏览图像,所以我已经设置了 Javascript 和所有内容(它只是用 .innerHTML 重写了一个 div 以显示新图像)

但是,如果您按几次该键,即使不再需要它,它也会加载每个图像。这会延迟用户实际想要查看的图像的加载,因此网站速度变慢(并且流量使用效率低等)

在 Chrome 检查器中看起来像这样:

http://i.stack.imgur.com/IkzEC.png

虽然它实际上可以切断当前的 GET 运算符,因为不再需要旧图像。

有什么办法可以中断吗?如果可能,不使用完全不同的技术来加载图像(AJAX)

提前致谢!

编辑:Crazy Train 的 iframe 创意可行!谢谢!

4

2 回答 2

0

我不相信以你想要的方式完全“取消请求”是可能的(想想试图收回你已经说过的话)。即使您可以告诉浏览器忽略响应,服务器仍然会处理并发送响应。

您可以采取的一种方法是将您的响应分块以包含图像组。例如,它可以返回下一个 x 个图像的 url,而不是获取单个图像的请求(我假设在这种情况下它只是一个 url)。如果您的“x”是 10,并且用户跳过了 5 张图片,那么您仍然需要到第 6 张才能显示给他们。为了以防万一,所有检索到的“额外”图像都会被有效地预取。

您的代码必须稍作更改,因为它必须缓存图像,并在发出请求之前检查它是否已经具有特定图像。

于 2013-07-27T17:27:05.127 回答
0

您可以使用此代码段来取消请求:

try {
    window.stop();
} catch(e) {
    document.execCommand('Stop');
}

您可能想要采取的另一个安全技巧是在几毫秒后触发请求。

更新: XMLHttpRequest 有abort方法。在发送新请求之前调用它。中止

于 2013-07-27T17:20:34.410 回答