通过远程javascript加载页面

时间:2013-08-10 20:32:09

标签: javascript

我通过以下方式在我的网站上加载外部JavaScript:

<script language="javascript" type="text/javascript">
document.write("<script src='http://remoteserver/banner.php?id=10&amp;type=image&amp;num=3&amp;width=200'><\/script>");
</script>

一切都很好,但今天是远程服务器的大超时,网站上的页面加载阻塞。

是否有可能在页面加载后异步加载javascript或加载它? 我不希望在远程服务器不工作时页面加载中断。

我知道HTML5中有标签异步,但它不起作用,我认为因为这个脚本比javascript(它以“.php”结尾)更复杂。 另外我知道最好在/ body标签之前放置javascript文件来防止这个问题,但这不是最好的解决方案。

你知道其他解决方案吗?

2 个答案:

答案 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&amp;type=image&amp;num=3&amp;width=200";
    // ^ Set the source to whatever is needed.
    document.body.appendChild(scriptEl);
    // Append the script element at the bottom of the body.
</script>