Ads by Google

  • --.--.--(--) --:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[JavaScript] サーバーからJavaScriptに値を設定する方法

  • 2008.12.04(木) 17:10
まだ良い方法が思いつかないけれど・・・。
サーバーからJavaScriptに直接、値を設定できないかと色々試行錯誤中。
最近でてきたアクセス方法にJSONPと言うのがある。
Googleなどのapiの引数にcallback引数というのが存在する。

callback引数にJavaScriptの特定の関数名を与えると、
アクセス完了時に、指定した関数が実行されるようになっている。
中身は当然ながらJSON形式でなければならない。
というかそっちの方が便利だと思う。

・サーバーから出力する文字列
callback時の関数名({a: "aaa", b: "bbb"});

・JavaScriptに定義する関数
function callback時の関数名 (data)
{
・・・・
}


こんな感じ。

これを利用して、HTMLのScriptタグにURLを指定し、JavaScriptに値を渡せる。
が、何気に2重アクセスという・・・。

ちなみに、Ajax通信はクロスドメインアクセスができないが、
この方法はクロスドメインでもアクセスできる。

ただ、この方法を使わなくとも、hiddenに入れちゃうとか、
直接JavaScriptの変数に入れちゃうとか(var a = サーバーで設定)、
Cookieに値を入れちゃうとかあるけれども。。

利点はサーバーから送られてきた値が何なのかすぐには分からないという点だろうか。
もちろん、Cookieに書くようにしても同じではあるが、人によっては無効にしている場合もある。
そういった点を鑑みて、JSONPで値を渡す方法が適していると考えた。

でも、2重アクセス・・・、うーむ。
コメント
コメントの投稿
管理者にだけ表示を許可する