从用户体验来看,下面哪种技术更好?
在这两个示例中,假设将thumbContainer其设置为返回值document.getElementById('thumbContainer'),并new Thumbnail(thumb).toXMLString()返回其中包含XHTML标记的字符串.
A)简单地+=用thumbContainer.innerHTML:
for (thumb in thumbnails) {
thumbContainer.innerHTML += new Thumbnail(thumb).toXMLString();
}
Run Code Online (Sandbox Code Playgroud)
B)或转换new Thumbnail(thumb).toXMLString()为DOM元素并使用appendChild?
for (thumb in thumbnails) {
var shell = document.createElement('div');
shell.innerHTML = new Thumbnail(thumb).toXMLString();
for (i = 0; i < shell.childElementCount; i++) {
thumbContainer.appendChild(shell.children[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
我已经使用了两者并得到了Firefox的投诉,我有一个长期运行的脚本,我想要阻止它吗?
哪个循环不太紧,这将允许UI在新元素添加到DOM时更新?
E4X(Ecma-357)是ECMAScript的扩展,它将XML文字添加为第一类基元.这很棒,但只有Mozilla和Adobe的支持(没有V8和IE支持),从Web开发人员的角度来看,E4X几乎已经死了,它必须支持用户使用任何现代浏览器.
在JavaScript中实现XML文字还有哪些其他工作要做?有没有办法在JavaScript中获得类似于XML文字或E4X的东西,任何人都在努力?也许是框架的一些插件?
前几天我遇到过LunaScript(asana.com/Luna),它用类似JavaScript的语言实现了XML文字.这很好,但我可能永远不会在Asana工作,因此永远不会写LunaScript.