2009-03-13

opensocial-jquery はあらゆるリクエストとレスポンスのイベントを検出できます

おはようございます。なかじまんです。

opensocial-jquery は gadgets.io.makeRequest や opensocial.DataRequest をすべて jQuery.ajax で扱う ようにデザインしています。

そのため、jQuery.ajax があらかじめ持つ Ajax グローバルイベントのハンドリングもそのまま使えます。つまり、外部サイトであっても、OpenSocial コンテナであっても、あらゆるリクエストとレスポンスのイベントをハンドリングできるというわけです。

↓例えば、開発やテストのとき、リクエストとレスポンスの流れをロギングすることができます。期待どおり動作しているか、そうでないときは、何が原因なのかが把握しやすくなります。外部サイトの Ajax か OpenSocial コンテナの Ajax かを区別しない利点がこのようなところに現われます。

<script type="text/javascript">
$('<div class="logs" />')
.ajaxStart(function() { console.log('ajaxStart'); })
.ajaxSend(function(xhr, s) { console.log('ajaxSend', xhr, s); })
.ajaxSuccess(function(xhr, s) { console.log('ajaxSuccess', xhr, s); })
.ajaxError(function(xhr, s, e) { console.log('ajaxError', xhr, s, e); })
.ajaxComplete(function(xhr, s) { console.log('ajaxComplete', xhr, s); })
.ajaxStop(function() { console.log('ajaxStop'); });
</script>

↓例えば、ajaxStart と ajaxStop のイベントを使って、Ajax 中を表すのインジゲータの表示と非表示を切り替えたりできます。外部サイトの Ajax か OpenSocial コンテナの Ajax かを区別しない利点がこのようなところにも現われます。

<script type="text/javascript">
$('<div class="indicator" />')
.ajaxStart(function() { $(this).show(); })
.ajaxStop(function() { $(this).hide(); });
</script>

Google Friend Connect (GFC) の API ドキュメントが公開されたということで、opensocial-jquery の GFC 対応も進めていきたいと思います。

0 件のコメント: