我正在开发一个网站,您可以按下键快速浏览图像,所以我已经设置了Javascript和所有内容(它只是用.innerHTML重写一个div以显示一个新的图像)。
但是,如果您按了几次键,即使不再需要,它也会加载每个图像。这延迟了用户实际想要看到的图像的加载,因此站点速度减慢(流量使用效率低等等)
在Chrome监测器里看起来是这样的:
http://i.stack.imgur.com/IkzEC.png
虽然它实际上可以切断当前的GET操作符,因为旧图像不再需要了。
有什么办法打断它吗?如果可能的话,不使用完全不同的技术来加载图像(AJAX)
提前感谢!
编辑:疯狂列车的想法与iframes的工作!谢谢!
发布于 2013-07-27 17:20:34
您可以使用此片段取消请求:
try {
window.stop();
} catch(e) {
document.execCommand('Stop');
}
您可能想要执行的另一个安全技巧是在几毫秒后触发请求。
更新: XMLHttpRequest有abort
方法。在发送新请求之前调用它。中止
发布于 2013-07-27 17:27:05
我不相信以你想要的方式完全“取消请求”是不可能的(想想尝试收回你已经说过的话)。即使您可以告诉浏览器忽略响应,服务器仍将处理和发送响应。
你可以采取的一种方法是将你的反应分成几组。例如,它可以返回下一个图像的url,而不是获取单个图像的请求(我假设这个请求只是本例中的url)。如果你的'x‘是10,而用户跳过5个图像,你仍然必须第6,以显示给他们。所有检索到的“额外”图像都会被有效地预取,以防万一。
您的代码必须稍微改变,因为它必须缓存图像,并在发出请求之前检查它是否已经有了特定的图像。
https://stackoverflow.com/questions/17900448
复制相似问题