2009年11月25日水曜日

[OpenSocial]setTimeout

外部URLにリクエストを繰り返し飛ばしたい場合、レスポンスを受けた関数内にsetTimeoutしないと複数リクエストを発射することになるようです。
何らかの更新系処理を実施した場合、ここでコケちゃいます。
これを悪用すると、どっかのサーバ落としたい場合には・・・、ってその前にOpenSocial提供している所が落ちる?

以下、一例
function hogehoge() {
  var url = 'http://hogehoge.com/';
  var params = {};
  params[gadgets.io.RequestParameters.METHOD] = gadgets.io.MethodType.GET;
  params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.TEXT;
  params[gadgets.io.RequestParameters.AUTHORIZATION] = gadgets.io.AuthorizationType.NONE;

  gadgets.io.makeRequest(url, function(response) {
    var txt = response.data;
    if (txt) {
      // 何か処理
      setTimeout(yoshi_init(), 1000); // ここに繰り返し
    } else {
      // 何か処理
      setTimeout(yoshi_init(), 1000); // ここに繰り返し
    }
  }, params);


// setTimeout(hogehoge(),1000); // ここに繰り返すとNG: 複数リクエスト発射
}

0 件のコメント:

コメントを投稿