我的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的问题。原始帖子中并不清楚。
答案 0 :(得分:1)
是否可以在后台脚本中检索pageB_element? https://developer.chrome.com/extensions/event_pages
在这种情况下,会有一个初始性能命中,但此后你会有一个pageB_element(内部html)的缓存副本,然后你可以立即在页面A中插入。