第三方聊天网站的嵌入代码推荐嵌入代码如下:
document.write(unescape("%3Cscript src='https://site.com/script.js' type='text/javascript'%3E%3C/script%3E"));
并且外部Javascript本身也包含document.write
代码。这意味着传统的延迟加载策略会阻止脚本完全运行。没有延迟加载是一个问题,因为脚本有时可能需要90秒才能加载,这会阻止整个页面的DOMReady事件。
我可以在自己的网站上做些什么(鉴于我无法控制嵌入式脚本)来处理性能问题?不要介意解决方案是否无法在所有浏览器中使用。
答案 0 :(得分:1)
您可以将其放在iframe中 - 即使它阻止,它也会阻止不同的文档。你也可以将它放在页面的底部(这样不会延迟页面),然后将生成的HTML在DOM中移动到你想要的位置 - 这是一个更危险的策略,因为它可能搞砸了聊天代码。
答案 1 :(得分:0)
您可以做的最好的事情是将脚本标记尽可能靠近文档的末尾(在标记之前)。您可以通过以下功能添加脚本:
function loadScript(url, callback) {
var script = document.createElement("script");
script.type = "text/javascript";
//callback functionality
if (!!callback && Ext.isFunction(callback)) {
if (script.readyState) { //IE
script.onreadystatechange = function() {
if (script.readyState === "loaded" || script.readyState === "compleate") {
script.onreadystatechange = null;
callback();
}
};
} else { //other browsers
script.onload = function() {
callback();
}
}
}
script.src = url;
document.getElementsByTagName('head')[0].appendChild(script);
}
而不是使用
document.write('...')