并行加载两页并合并结果

时间:2014-08-11 23:16:29

标签: javascript jquery google-chrome google-chrome-extension

我的Chrome扩展程序通过使用内容脚本发出AJAX请求,将页面B中的HTML插入到页面A中:

的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后立即使用manifest.json中的"run_at": "document_start"注入Javascript也是如此。

  • 是否可以在页面A 请求之后立即请求页面B,并且并行下载这两个页面?这在普通网页的客户端是不可能的,但扩展是否可以通过webRequest API实现此目的?

  • 如果失败了,是否至少有一种非hacky方式同时显示页面A和来自页面B的插入元素?

编辑:

请注意,页面B取决于pageA.com上请求的子域名,因此它不仅仅是缓存页面B的问题。原始帖子中并不清楚。

1 个答案:

答案 0 :(得分:1)

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

在这种情况下,会有一个初始性能命中,但此后你会有一个pageB_element(内部html)的缓存副本,然后你可以立即在页面A中插入。