0

Can someone explain to me why this work:

 <script src="//cdn.socket.io/socket.io-1.0.4.js"></script>
 <script>
        var socket = io('http://nodeapp.herokuapp.com');
        console.log(socket);
 </script>

but this doesn't work:

 <script async src="//cdn.socket.io/socket.io-1.0.4.js"></script>
 <script>
        var socket = io('http://nodeapp.herokuapp.com');
        console.log(socket);
 </script>

Error is:

     Uncaught ReferenceError: io is not defined 

Or how i can append socket.io library on client side with require.js and that in this case works ok (without error above).

4

1 回答 1

4
<script async ...

您明确要求浏览器不要等到它获取脚本。

因此,它不会等待脚本被获取并执行,然后再转到下一个脚本。因此io当你去的时候还没有定义

var socket = io('http://nodeapp.herokuapp.com');

脚本异步的 MDN

于 2014-06-16T14:07:23.307 回答