Я пишу небольшое веб-приложение, используя CytoscapeWeb. Он загружает файл XML, содержащий график, и отображает его. Я столкнулся с проблемой, когда он не отображает график (вместо этого показывает пустой график), даже если известно, что файл исправен. После нескольких дней безрезультатного изучения моего кода я начал изменять пример кода, предоставленный в руководстве, чтобы воспроизвести проблему.
Этот код работает:
function get_network(filename)
{
var output = "";
$.ajax({url: filename, type: "GET", dataType: "text", success: function(result) { output = result; } });
alert(filename);
alert(output);
return output;
}
И этот код не:
function get_network(filename)
{
var output = "";
$.ajax({url: filename, type: "GET", dataType: "text", success: function(result) { output = result; } });
//alert(filename);
//alert(output);
return output;
}
Единственное отличие состоит в том, что два оператора alert() закомментированы. Когда удален только первый оператор (alert(filename);), в окне предупреждения отображается пустая строка. Таким образом, может показаться, что пустой график вызван проблемой, связанной с неправильной установкой выходной переменной.
Я тестировал это в Firefox и Internet Explorer. Это работает, если есть один оператор предупреждения, который печатает строку «ASDFSADF», а не выходную переменную. Однако интересно, что код, который не использует оператор alert(), например 'var junk = "ASDFSADF"', не работает.
Итак, мне кажется, что есть три возможности:
- Я сделал какую-то синтаксическую или логическую ошибку, из-за которой количество проанализированных строк значительно
- Cytoscape Web вызывает проблему так, как я не могу себе представить.
- jQuery не вызывает функцию «успех»
Однако я начинаю подозревать, что эта проблема выходит за рамки моего опыта и вызвана чем-то, что я не учел.
Однако, где может быть эта синтаксическая ошибка, я не понимаю. Я искал высоко и низко. Кто-нибудь видел что-то подобное или знает, что происходит?
Большое спасибо за вашу помощь.
Полный код: http://pastebin.com/rvcV3LFL
XML-файл: http://pastebin.com/HCyuKQnx
get_network
принимал функцию обратного вызова и передалoutput
этой функции обратного вызова внутри вашего обратного вызова AJAXsuccess
. - person mu is too short   schedule 01.07.2012