无法加载资源错误处理

时间:2013-12-21 03:59:37

标签: javascript node.js

我一直在用socket.io做一些nodeJS测试,并注意到我没有运行nodeJS我的客户端错误。

当nodeJS未运行时,我在客户端console.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启动时预先检查的最好方法?

2 个答案:

答案 0 :(得分:0)

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

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

</script>

如果要检查socket.io.js是否已完成加载,可以尝试使用Require.js http://requirejs.org/

答案 1 :(得分:0)

不是一个优雅的解决方案,但这应该可以解决您的问题 -

<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>