当在我的html脚本标签上使用async ='true'来加载socket.io.js时,会导致io对象的一个未定义的错误任何build议?
将async ='true'作为内联属性添加到html脚本标记以asynchronous提供我的socket.io.js文件时,会在尝试连接到服务器时导致io对象出现未定义的错误。 我通过在head标签中加载我的socket.io来修正这个90%的时间,但是加载最后连接的js文件,但是我宁愿不松散10%的客户,谁都知道如何解决这个问题? 我已经试过在文档加载后连接,就像保持未定义一样。 确保套接字的唯一方法是以100%的概率连接,从脚本标记中删除async ='true'内联属性。 任何build议?
如果要asynchronous加载socket.io
,则需要defer
依赖它的脚本,并确保它们位于HTML中的socket.io
脚本之下:
<!DOCTYPE html> <html> <head> ... <script async="true" src="js/socket.io.js"></script> ... </head> <body> ... <script async="true" defer="true" src="js/main.js"></script> </body> </html>
添加defer
确保在asynchronous加载的<script>
,它将按照它存在于HTML中的顺序执行。 当然,如果不支持defer
,那么也不会支持async
,所以它仍然会以正确的顺序加载,只是socket.io.js
会阻止渲染,直到它被加载。
- 通过nodejs发送原始的HTML到电子邮件hoganjs模板在电子邮件客户端提供原始的HTML输出
- 在Node.js中包含HTML文件
- 解码Windows-1252和引用可打印的HTML的组合
- 是否有可能使用Node.jsdynamic脚本文件注入html?
- 如何在使用Jquery的特定时间之后自动销毁DOM元素
- 使用NodeJS和JSDOM / jQuery从片段构build一个PHP页面
- 使用来自mysql数据库的NodeJs在html / js文件中显示数据
- Uncaught TypeError:canvas.selectAll(…).data(…).enter不是d3中的函数
- ReactJS构build文件的资源path