2015-10-19 4 views
0

У меня есть таблица со следующими данными.переменная undefined Jquery socket.io

Описание объект 1 объект 2 объект 3

Я стараюсь, чтобы получить эти данные из моей базы данных с помощью socket.io и поместить данные в строковую переменную под названием объектов. Строковые объекты будут выглядеть так: object1, object2, object3.

Если я пытаюсь сделать предупреждение (объекты), строка не определена. Мой 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> 

Я попытался подготовить документ (см здесь ниже), так как оповещения (объекты) выполняется перед Socket.io, но это не помогает.

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

Как решить эту проблему?

Спасибо за ваше время!

+0

Люди могут быть более заинтересованы в помощи вам, если вы отметили ответы на предыдущие вопросы, как [принято] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer -Работа). (И вы получите +2 балла!) – philipvr

ответ

0

Вам следует рассмотреть возможность использования socket.io debugging tool внутри хром-отладчика.

$(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() 
});