并行加载两个页面并合并结果

Load two pages in parallel and combine the results

本文关键字:合并 结果 两个 加载 并行      更新时间:2023-09-26

我的Chrome扩展插入HTML从页面B到页面A使用内容脚本,使AJAX请求:

manifest.json

[…]

"content_scripts": [
  {
    "js": [
      "jquery-1.11.0.min.js", 
      "myscript.js"
    ],       
    "matches": [
      "*://www.pageA.com/*",
    ]
  }
]

myscript.js

$.get('www.pageB.com/' + getPage(document.URL), function(data) {
    $(data).find('#page_B_element').insertBefore($('#page_A_element'));
});

然而,这只在页面A部分渲染后才开始下载页面B,因此在插入$('#page_B_element')之前存在明显的延迟。即使在收到页面A后立即注入Javascript(在manifest.json中使用"run_at": "document_start")也是如此。

  • 是否有可能在页面A 被请求后立即请求页面B ,并并行下载两个页面?这是不可能的客户端与普通的网页,但可以扩展实现这一点,像webRequest API?

  • 如果失败,是否至少有一种非黑客的方式来显示页面a和从页面B插入的元素在同一时间?

编辑:

请注意,页面B依赖于paga.com上请求的子域,所以这不仅仅是缓存页面B的问题。

是否可以在后台脚本中检索pageB_element ?https://developer.chrome.com/extensions/event_pages

在这种情况下,最初的性能会受到影响,但此后您将有一个pageB_element(内部html)的缓存副本,然后您可以立即将其插入页面a。