variable undefined Jquery socket.io

variable undefined Jquery socket.io

本文关键字:io socket Jquery undefined variable      更新时间:2023-09-26

我有一个包含以下数据的表。

对象1对象2对象3

我尝试通过套接字从数据库获取此数据。并将数据放入名为Objects的字符串变量中。字符串对象看起来像这样object1,object2,object3

如果我尝试alert(objects),字符串是未定义的。我的HTML代码是

<!DOCTYPE HTML>
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  <title>SlickGrid example 1: Basic grid</title>
  <link rel="stylesheet" href="/slick.grid.css" type="text/css"/>
  <link rel="stylesheet" href="/css/smoothness/jquery-ui-1.8.16.custom.css" type="text/css"/>
  <link rel="stylesheet" href="/examples/examples.css" type="text/css"/>
</head>
<body>
<script src="/lib/jquery-1.7.min.js"></script>
<script src="/lib/jquery.event.drag-2.2.js"></script>
<script src="../lib/jquery-ui-1.8.16.custom.min.js"></script>
<script src="/socket.io/socket.io.js"></script>
<script>
  jQuery(function($){
  var socket = io.connect();
  var objects;
  var temp=[];
  socket.on('load data', function(data){
    for (var i = 0; i < data.length; i++) {
      temp = data[i];
      objects = objects + "," + temp.description;
    };
    objects = objects.substr(10, objects.length-10);
    objects=$.trim(objects);
  });
  alert(objects);   <== undefined
})
</script>
</body>
</html>

我尝试document ready(见下面),因为alert(objects)在套接字之前执行。

$( document ).ready(function() {
    alert(objects);
});

我该如何解决这个问题?

感谢您的宝贵时间!

您应该考虑使用套接字。IO调试工具内部的chrome调试器。

$(function(){ // don't pass $ as an argument to this function
  var socket = io.connect(), // what are you connecting to?
     objects,
     temp=[];
  socket.on('load data', function(data){
    for (var i = 0; i < data.length; i++) {
      temp = data[i];
      objects = objects + "," + temp.description;
    };
    objects = objects.substr(10, objects.length-10);
    objects=$.trim(objects);
    alert(objects); // what is the value of objects here?
  });
  alert(objects); // socket.on is asynchronous so this line is will pretty much always
                  // be executed before your callback function for socket.on()
});