Javascript 在ajax响应上使用jQuery会触发额外的网络请求

Javascript 在ajax响应上使用jQuery会触发额外的网络请求,javascript,jquery,Javascript,Jquery,我正在编写一个小脚本,它从一个页面中获取一组链接,获取它们并搜索结果以获取一些数据。 例如,像这样: 让listLinks=$'。项目a'; listLinks.eachfunction{ 让url=this.href; 获取URL{ 凭据:“包括” } .thenresponse=>response.text .thenfunctionhtml{ 让name=$'title h1',html; } }; 我的问题是,一旦我们到达响应上的选择器,我浏览器的开发工具中的网络选项卡就会亮起,请求大量

我正在编写一个小脚本,它从一个页面中获取一组链接,获取它们并搜索结果以获取一些数据。 例如,像这样:

让listLinks=$'。项目a'; listLinks.eachfunction{ 让url=this.href; 获取URL{ 凭据:“包括” } .thenresponse=>response.text .thenfunctionhtml{ 让name=$'title h1',html; } }; 我的问题是,一旦我们到达响应上的选择器,我浏览器的开发工具中的网络选项卡就会亮起,请求大量资源,就像jquery?正在加载整个页面

这到底是怎么回事

我不想加载整个页面资源,我只想从html响应中获取一堆文本

编辑:经过仔细检查,我发现它只对ajaxed页面上的任何图像发出网络请求,而不是脚本或样式表

如果我尝试以另一种方式处理html,比如调用.indexOf,它不会发出这些请求。除非我决定通过jquery遍历它

Edit2:在dev工具中,network选项卡有一个initiator列。它表示这是请求的启动器:。我不知道该怎么解释,但是


注意

问题是您正在使用fetch。使用jQuery.AJAX


我发现了原因:

我的代码在相关行上方: $'title h1',html 相当于 $html.find'title h1'

和$html。实际的、文字的DOM对象

创建我解析的HTML包含的元素时,浏览器会自动发出网络请求。 有关问题:

对于问题中的代码,创建的DOM元素仍然与当前记录的文档相关联,因此浏览器会自动请求新文档,但它还没有。 正确的解决方案是创建一个单独的文档,例如

let parser = new DOMParser();
let doc = parser.parseFromString(html, "text/html");
let name = $('#title h1', doc);
在这种情况下,不会发出网络请求


我不想加载整个页面,我只想从html响应中获取一堆文本!不幸的是,AJAX不是这样工作的。当您发出请求时,您将收到全部回复。在这种情况下,您需要剖析该响应,以仅获取所需的相关数据。这与jQuery的load方法的工作方式相同。如果你想改变这种行为,修改你调用的端点,只返回相关的HTML。我指的是整个页面,也指所有链接的资源,如图像和脚本。尽管现在,在仔细检查下,我注意到了一些其他相关的东西——它只要求imagesnot脚本或样式表。我将编辑我的问题。这在逻辑上与OP已有的内容相同,不会对问题产生任何影响
let parser = new DOMParser();
let doc = parser.parseFromString(html, "text/html");
let name = $('#title h1', doc);