2011-06-30 2 views
2

Query object in the Google Visualization APIを使用して、リクエストを中止する方法を見つける必要があります。私は、通常のクエリを設定しますGoogle Visualizationクエリを中止する

var qMyQuery=new google.visualization.Query('http://myurl'); 
qMyQuery.send(queryDoneCallbackFunctionName); 

私は.abort方法を試してみましたが、唯一、定期的にデータをリフレッシュするために適用されることをしています。私もqMyQuery=nullを設定しようとしましたが、何もしませんでした。

コールバックに返されたときにデータを単に破棄することはできません。これは、ユーザーが要求した場合、サーバー上で非常に長いクエリを停止することです。

提案がありますか?ありがとう。

+0

長時間のクエリを停止することを目標とする場合は、setTimeoutメソッドを使用して待機する時間を制限してみましょう。 – oli

+0

@oli、私はユーザーが私のアプリケーションでキャンセルボタンをクリックした場合、私はクエリをキャンセルしたい、自動的に減量時間に基づいていません。 – Brad

+0

qMyQuery.abort()を試しましたか?これを見てください:http://code.google.com/apis/chart/interactive/docs/examples.html#querywrapper –

答えて

1

の費用対効果を確認するために計算するか、慎重に測定する必要がありそれから、ボタンクリックハンドラや何か好きなものを使って、ユーザからのコマンドに対する要求を取り消す完全な権限を持ちます。

Googleの視覚化クエリモジュールでは、チャートDIVのユーザーに自動的にエラーを表示することができますが、それ以外の場合は自分のXHRオブジェクトを使用できません。

カスタムXHRオブジェクトを作成するか、jQuery、ExtJS Ajaxなどを使用してください。

+0

はい、それは私がおそらく終わりに行くルートです。 Google Queryオブジェクト内でXHRオブジェクトを見つけて、もう1つの中止メソッドを追加する方法はありません。私はそのプロトタイプで何かできませんか? – Brad

+0

GoogleではAPIを更新するとどうなりますか?潜在的な破損の変化。あなたがソースを見ることができれば、これは簡単です。そうでなければ、私はそれをお勧めしません。 – WattsInABox

+0

例が役に立つでしょう:) –

0

あなたは、単にクライアント側でAjaxリクエストをキャンセルしたい場合は、この質問を見なければならないAbort Ajax requests using jQuery

しかし、中に両方のリソースの別のセットを消費し、新しいAJAX要求を放出する必要があるサーバーのリソースを節約するにはクライアントとサーバの間に存在します。

このようなアボート要求のサーバー側の実装では、データベースなどの共有場所に格納されるフラグの検証が必要になります。

あなたが最も簡単な解決策は、カスタムXHRオブジェクトを使用して手動で、jQueryの、ExtJSの、などをGoogleにリクエストを送信するように思われるような実装

+1

Google Queryオブジェクトから基になるxhrオブジェクトを取得できないため、このメソッドを使用することはできません。 xhrオブジェクトを取得できない場合は、http://code.google.com/apis/chart/interactive/docs/reference.html#Query – Brad

+1

@Bradをご覧ください.APIではキャンセルすることはできませんリクエストをキャンセルできません。もちろん、APIを書き換えない限り。 –

関連する問題