Как экспортировать веб-график cytoscape перед отправкой страницы в браузер

Сценарий: клиент находится на странице с панелью поиска, он вводит запрос. Этот запрос передается на вторую страницу, которая динамически генерируется сервером с помощью php. Наряду с информацией запроса, передаваемой сценарию php, передается переменная, позволяющая сценарию php определить, доступна ли flash для браузера клиента. Теперь скрипт php отображает png сетевого графика, сгенерированного cytoscape web, если flash недоступен, и swf графика, если flash доступен.

Проблема / Вопрос:1.) Cytoscape web - это библиотека javascript для отображения графиков. Он имеет функцию экспорта (http://cytoscapeweb.cytoscape.org/documentation#section/exportNetwork), но позволяет браузеру загружать экспортированный файл только. Я хочу иметь возможность экспортировать и сохранить этот файл во время выполнения php, а затем внедрить его в качестве содержимого вместо SWF, если Flash не включен. Как бы я поступил так, если в браузере клиента должен быть запущен метод javascript?

Ресурсы

Метод экспорта графиков 1: http://cytoscapeweb.cytoscape.org/documentation

Метод экспорта графиков 2: http://cytoscapeweb.cytoscape.org/documentation

1 ответ

Аналогичный вопрос был задан на странице веб-групп Google Cytoscape.
Вот ссылка на вопрос и ответ

Вот что сказал:

Если вы используете png(), вы получите только байты изображения как String (как Base64). Он не экспортирует изображение на серверную часть и не делает его доступным для загрузки. Чтобы сделать это, вы должны сами передать строку на серверную сторону, снова преобразовать из base64 в байты, а затем заставить серверный компонент (например, PHP, Java-сервлет) передавать байты обратно в браузер, чтобы пользователи могли загрузить образ.

Существует также возможность использования компонента / плагина Flash для получения байтов и обеспечения возможности их загрузки без использования веб-сервера. Это именно то, что делает демонстрационное приложение Cytoscape Web (http://cytoscapeweb.cytoscape.org/demo), когда вы выбираете пункт меню "Сохранить файл". Вы можете скопировать примеры из файла JavaScript демо-версии и использовать библиотеку Flash, которую мы разработали для этого. Это не очень хорошо задокументировано, поэтому я думаю, что это может быть немного сложнее. В любом случае, если вы хотите попробовать, взгляните на:

- http://cytoscapeweb.cytoscape.org/js/content/demo.js - search for "org.cytoscapeweb.demo.Exporter"
- http://chianti.ucsd.edu/svn/cytoscapeweb/trunk/file/ - you can download the component project from Subversion with the command:  svn checkout http://chianti.ucsd.edu/svn/cytoscapeweb/trunk/file cwfile-read-only

Если вы ищете в Интернете, вы можете найти аналогичные плагины.

Помните, что функция png () должна вызываться из функции ready() перед вызовом vis.draw() - пример:

vis.ready(function() {
    var png = vis.png();
// handle the png bytes here:
    alert(png);
});
vis.draw(draw_options);

Более простым вариантом является использование функции exportNetwork(), которая требует серверной части. См. http://cytoscapeweb.cytoscape.org/documentation/cytoscape_web; это даже включает пример PHP. Часть JavaScript будет выглядеть примерно так:

vis.ready(function() {
    // ...
vis.exportNetwork('png', 'export.php?type=png');
    // ...
});

Имя выходного файла задается кодом на стороне сервера - в данном примере это файл "export.php".

Надеюсь, это поможет

Другие вопросы по тегам