1

シナリオ: クライアントが検索バーのあるページにいて、クエリを入力します。このクエリは、サーバーによって php で動的に生成される 2 番目のページに渡されます。php スクリプトに与えられたクエリ情報とともに変数が渡されます。これにより、php スクリプトは、クライアントのブラウザでフラッシュが利用可能かどうかを判断できます。現在、php スクリプトは、フラッシュが利用できない場合は cytoscape Web によって生成されたネットワーク グラフの png を表示し、フラッシュが利用可能な場合はグラフの swf を表示します。

問題/質問: 1.) Cytoscape web は、グラフを表示するための JavaScript ライブラリです。エクスポート機能 (http://cytoscapeweb.cytoscape.org/documentation#section/exportNetwork) がありますが、エクスポートされたファイルをブラウザでダウンロードすることしかできません。フラッシュが有効になっていない場合は、php ランタイム中にこのファイルをエクスポートして保存し、swf の代わりにコンテンツとして埋め込むことができるようにしたいと考えています。クライアントのブラウザで JavaScript メソッドを実行する必要がある場合、どうすればよいでしょうか?

資力

グラフのエクスポート方法 1: http://cytoscapeweb.cytoscape.org/documentation#section/png

グラフのエクスポート方法 2: http://cytoscapeweb.cytoscape.org/documentation#section/exportNetwork

4

1 に答える 1

0

同様の質問がcytoscapeウェブのグーグルグループページで尋ねられました。
質問と回答へのリンクは次のとおりです

これが言ったことです:

png()を使用すると、画像のバイトのみが文字列として(Base64として)取得されます。イメージをサーバー側にエクスポートせず、ダウンロードできるようにしません。これを行うには、文字列をサーバー側に送信し、base64からバイトに再度変換してから、サーバーコンポーネント(PHP、Javaサーブレットなど)がバイトをブラウザーにストリーミングして、ユーザーがダウンロードできるようにする必要があります。画像。

Flashコンポーネント/プラグインを使用してバイトを取得し、Webサーバーを必要とせずにダウンロードできるようにするオプションもあります。これは、[ファイルの保存]メニューオプションを選択したときに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

インターネットを検索すると、同様のプラグインが見つかる場合があります。

vis.draw()を呼び出す前に、ready()関数内からpng()関数を呼び出す必要があることに注意してください。例:

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#section/exportNetworkを参照してください; PHPの例も含まれています。JavaScriptの部分は次のようになります。

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

出力ファイルの名前は、サーバー側のコード(この例では「export.php」ファイル)によって決まります。

お役に立てば幸いです

于 2012-12-28T19:14:46.737 に答える