Javascript 无法加载资源错误处理

Javascript 无法加载资源错误处理,javascript,node.js,Javascript,Node.js,我一直在用socket.io做一些nodeJS测试,并注意到当我不运行nodeJS时,我的客户端出现了错误 当nodeJS未运行时,我在我的客户端控制台.log中收到以下错误: Failed to load resource socket.io/socket.io.js 我的客户端代码如下所示: <script src = "socket.io/socket.io.js" > < /script> <script> window.onload = func

我一直在用socket.io做一些nodeJS测试,并注意到当我不运行nodeJS时,我的客户端出现了错误

当nodeJS未运行时,我在我的客户端控制台.log中收到以下错误:

Failed to load resource socket.io/socket.io.js
我的客户端代码如下所示:

<script src = "socket.io/socket.io.js" > < /script> 
<script>
window.onload = function(){

 if(typeof io != 'undefined'){
     socketio = io.connect("[hidden]:[hidden]");            

     socketio.on('error', function(err) {       
         if(err === 'handshake error') {
            console.log('handshake error', err);
         } else {
            console.log('io error', err);
         }  
    });
 } else {
    console.log('IO not started?');
 }

}
</scirpt>

所以我想知道,当nodeJS启动时,什么是最好的预周期检查方法?

如果服务器返回500,您可以向nodeJS服务器发送请求。nodejs现在停止了

<script>
  var socket = io.connect();
  socket.on('connect', function(){
    console.log('connected');
    //do Something...      
  })

</script>
如果要检查socket.io.js是否已完成加载,可以尝试使用Require.js
这不是一个优雅的解决方案,但这应该可以解决您的问题-

<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script>
$(document).ready(function(){
  var connected = 0;
  var socket;
  var timer = setInterval(function(){
    loadScript();
  },1000);

  function loadScript() {
  $.getScript("http://<ip>:<port>/socket.io/socket.io.js")
      .done(function( script, textStatus ) {
        //console.log( textStatus );
        if(!connected) {
          socket = io.connect('http://<ip>:<port>');
          connected = 1;
          clearInterval(timer);
        }
      });
  }
});
</script>

你能用一个基本的例子来扩展你的答案吗…?这个问题是io在socket.io.js加载之前是不存在的,所以它仍然会产生错误。io是在socket.io.js中定义的,所以你必须加载它才能访问io