2011-10-19 6 views
0

フュージョンチャートを使用してレンダリングされた複数のチャートがあるページがあり、それらのレポートをポピュレートするために大量のデータをプルしています。 グラフの一部がタイムアウトになり、スピナーが連続していると、http要求が中止されます。そのチャートのURLがブラウザで別に実行されている場合、同じチャートが表示されます。 jquery.ajaxコールのタイムアウト値を増やしましたが、動作していません。タイムアウトがフラッシュプレーヤーのレベルで発生していると想定しています。このタイムアウトの問題を処理するにはどうしたらよいですか?フュージョンチャートがタイムアウトする

+0

これは、サーバーサイドスクリプトがタイムアウトしているためですか? – sudipto

答えて

2

これが起こる可能性があるさまざまなリアソースがありますが、いくつかの回避策もあります。

  1. 最新バージョンのFusionChartsを使用していますか?そうでない場合は、アップグレードすることをお勧めします。 FusionChartsの新しいJavaScriptフレームワークでは、AJAXを使用してデータを取得します。これはより安定して信頼できると判明するかもしれません。最新バージョンを既に使用している場合は、廃止予定のAPI(.setDataURLなど)を使用していないこと、および純粋なHTML埋め込み方法を使用していないことを確認してください。
  2. 推奨値よりも多くのデータポイントを配置しようとしている可能性があり、すべてのグラフをレンダリングするには負荷が大きすぎます。一般的に、チャートは300から500ポイント(そして設定が単純な場合はさらに高くなります)でうまく表示されます。円チャートは100ポイントまで有効です。データが多すぎる場合はZoomLineチャートを試してみてください。
  3. その他の理由はネットワークの負荷になる可能性があります。並行してロードしようとするデータが多すぎると、ブラウザーは接続を中断/タイムアウトさせます。接続が遅いのですか古いブラウザですか?チャートを千鳥にチェーンロードする(つまり、1つのチャートがFC_Renderedイベントを発生し、次のイベントをレンダリングするなど)。
  4. jQuery AJAXを使用して直接データを取得することも、すべてのデータがロードされたときに試すこともできます.setXMLData()を使用して、XML文字列としてデータを入力して、グラフのレンダリングを開始できます。

これは、チャートのJavaScriptバリアントを使用している場合でも発生するかどうかを確認することもできます。そうでなければ、それを使うことに固執するかもしれません。

PS:この方法で遅く答えてください...しかし、まだループしている場合は、役立つかもしれません。 :P

+0

ハイシャーマシス、入力と提案をありがとう。私たちはいくつかの変更を試み、バックエンドのサマリーテーブルを使用してこの問題を解決することができました。 1ページに複数のチャートがあると、データ取得が非常に遅かったため、チャートのタイムアウトが発生しました。より軽量でよりサポートされているため、JavaScriptバージョンのチャートを使用しています。 –

+0

@pri_devそれでは、主にサーバー側のスクリプトがタイムアウトしたり、AJAX /ネットワークのトランスポートが問題になっていましたか?ポイント3で言及した、ずらした/連鎖の読み込み方法を試しましたか? –

+0

次回使用するときは間違いなく試してみます... –

関連する問題