我通过以下方式在我的网站上加载外部JavaScript:
<script language="javascript" type="text/javascript">
document.write("<script src='http://remoteserver/banner.php?id=10&type=image&num=3&width=200'><\/script>");
</script>
一切都很好,但今天是远程服务器的大超时,网站上的页面加载阻塞。
是否有可能在页面加载后异步加载javascript或加载它? 我不希望在远程服务器不工作时页面加载中断。
我知道HTML5中有标签异步,但它不起作用,我认为因为这个脚本比javascript(它以“.php”结尾)更复杂。 另外我知道最好在/ body标签之前放置javascript文件来防止这个问题,但这不是最好的解决方案。
你知道其他解决方案吗?
答案 0 :(得分:3)
同步脚本会阻止解析器...
不正确的方法:
<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
</script>
异步脚本不会阻止您的网页呈现:
正确的方法:
<script type="text/javascript">
(function(){
var po = document.createElement('script');
po.type = 'text/javascript';
po.async = true;
po.src = "https://apis.google.com/js/plusone.js";
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(po, s);
})();
</script>
来源:http://www.youtube.com/watch?feature=player_detailpage&v=Il4swGfTOSM&t=1607
答案 1 :(得分:1)
您可以通过创建DOM节点轻松完成。
<script>
var scriptEl = document.createElement("script"); //Create a new "script" element.
scriptEl.src = "http://remoteserver/banner.php?id=10&type=image&num=3&width=200";
// ^ Set the source to whatever is needed.
document.body.appendChild(scriptEl);
// Append the script element at the bottom of the body.
</script>