Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在不重新加载的情况下强制中止浏览器的所有GET_Javascript_Jquery_Http - Fatal编程技术网

Javascript 在不重新加载的情况下强制中止浏览器的所有GET

Javascript 在不重新加载的情况下强制中止浏览器的所有GET,javascript,jquery,http,Javascript,Jquery,Http,我目前正在开发一个小应用程序,它基本上完全是用jQuery构建的,它利用API并根据用户请求加载许多(大约25个)图像、GIF和视频 因此,每当用户输入开始时,所有这些元素都将作为divs写入DOM,图像分别作为背景图像属性或视频标记。然后,一个新的输入将清除DOM并重做流程,所有这些都是通过js完成的 现在,首先,我不是在谈论AJAX请求,只是想澄清一下。当元素写入DOM时,浏览器当然会启动对资源的所有经典GET请求(imgur、gfycat),但它们会一直运行到完成,即使它们的DOM元素已经

我目前正在开发一个小应用程序,它基本上完全是用jQuery构建的,它利用API并根据用户请求加载许多(大约25个)图像、GIF和
视频

因此,每当用户输入开始时,所有这些元素都将作为
div
s写入DOM,图像分别作为
背景图像
属性或
视频
标记。然后,一个新的输入将清除DOM并重做流程,所有这些都是通过js完成的

现在,首先,我不是在谈论AJAX请求,只是想澄清一下。当元素写入DOM时,浏览器当然会启动对资源的所有经典GET请求(imgur、gfycat),但它们会一直运行到完成,即使它们的DOM元素已经被删除

比如说,一个用户进行了三次快速输入,现在他的浏览器加载了75幅图像/mp4。更糟糕的是,如果任何一个请求被卡住,浏览器实际上可能会限制请求并冻结所有内容,直到第一批处理完成,而第一批处理现在与用户无关


有什么办法可以解决这个问题吗?

您可以首先通过在完全不同的DOM(
document.implementation.createHTMLDocument
)中创建请求,然后在确定要加载它们之后将它们导入到您的DOM(
document.importNode
)来防止请求触发,但这可能不适合你所问的。好吧,你不能在XHR之外控制浏览器自己的请求。嗯,确实有——但我不知道这有多有效,支持的范围有多广。(除了支持,MDN说IE不支持它)。但是你可能想尝试一下。至于视频,你可能想考虑不直接嵌入它们,而只考虑占位符/预览图像,并且只在显式用户交互上开始加载实际视频(即,当用户点击“播放”按钮)时。。到目前为止,我发现的是这个片段:
尝试{window.stop();}catch(e){document.execCommand('stop');}
@CBroe它们实际上不是视频,而是gfycat“HTML5 GIF”。因此,从技术上讲,这是一个
视频
,但长度可能为5到10秒。