第一种方法
使用document.cloneNode()
性能是:
调用document.cloneNode()
花费了约0.22499999977299012毫秒。
可能还会更长时间。
var t0, t1, html;
t0 = performance.now();
html = document.cloneNode(true);
t1 = performance.now();
console.log("Call to doSomething took " + (t1 - t0) + " milliseconds.")
html.documentElement.innerHTML = '<!DOCTYPE html><html><head><title>Test</title></head><body><div id="test1">test1</div></body></html>';
console.log(html.getElementById("test1"));
2 Way
使用 document.implementation.createHTMLDocument()
性能表现为:
调用document.implementation.createHTMLDocument()
花费了约0.14000000010128133毫秒。
var t0, t1, html;
t0 = performance.now();
html = document.implementation.createHTMLDocument("test");
t1 = performance.now();
console.log("Call to doSomething took " + (t1 - t0) + " milliseconds.")
html.documentElement.innerHTML = '<!DOCTYPE html><html><head><title>Test</title></head><body><div id="test1">test1</div></body></html>';
console.log(html.getElementById("test1"));
三种方法
使用document.implementation.createDocument()
性能为:
调用document.implementation.createHTMLDocument()
花费了约0.14000000010128133毫秒。
var t0 = performance.now();
html = document.implementation.createDocument('', 'html',
document.implementation.createDocumentType('html', '', '')
);
var t1 = performance.now();
console.log("Call to doSomething took " + (t1 - t0) + " milliseconds.")
html.documentElement.innerHTML = '<html><head><title>Test</title></head><body><div id="test1">test</div></body></html>';
console.log(html.getElementById("test1"));
四种方法
使用new Document()
性能是:
调用document.implementation.createHTMLDocument()
花费了约0.13499999840860255毫秒。
ParentNode.append
在2020年是实验性技术。
var t0, t1, html;
t0 = performance.now();
html = new Document();
html.append(
html.implementation.createDocumentType('html', '', '')
);
html.append(
html.createElement('html')
);
t1 = performance.now();
console.log("Call to doSomething took " + (t1 - t0) + " milliseconds.")
html.documentElement.innerHTML = '<html><head><title>Test</title></head><body><div id="test1">test1</div></body></html>';
console.log(html.getElementById("test1"));
doc.getElementsByTagName('a')
来读取链接(甚至doc.links
)。 - Rob W