有人可以向我解释为什么这项工作:
<script src="//cdn.socket.io/socket.io-1.0.4.js"></script>
<script>
var socket = io('http://nodeapp.herokuapp.com');
console.log(socket);
</script>
但这不起作用:
<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>
错误是:
Uncaught ReferenceError: io is not defined
或者我如何在客户端使用require.js附加socket.io库,并且在这种情况下工作正常(上面没有错误)。
答案 0 :(得分:4)
<script async ...
您明确要求浏览器不要等到它获取脚本。
因此它不会等待脚本在进入下一个脚本之前被提取和执行。因此,当您转到
时,io
尚未定义
var socket = io('http://nodeapp.herokuapp.com');