サーバ側/クライアント側をひっくるめたAjaxの設計もやもや
いしなお!さんとこで、データとテンプレートの配置というお題でサーバサイド/クライアントサイドもろもろの設計話が出てました。
その1 その2&3
サーバ側プログラムもふくめたAjaxの設計を考えるときはいつも同じようなことを考えちゃいます。
いまのところ自分的には、
- 通信するデータはなるべく軽く。必要なものだけAjaxで持ってきて、html組み立てはJavaScriptで。というのが基本スタンス。
- ただし、JavaScript側の処理を増やしすぎてしまうと実行速度にすぐ影響出てくるので、その場合はサーバ側でhtml組み立て。複雑な文字列処理する場合はこっちのほうがだんぜん早い。
というかんじであります。
urlのうしろに「?mode=xml」ってつけてレスポンス形式を切り替えるのは自分も賛成。サーバ側プログラムも対応カンタンですしね。
ところで、Ajax向けの汎用的なサーバサイドプログラムを考えるときによく思うんですが、セキュリティ的な部分ってけっこう忘れやすくないですか?get/postパラメタでSQL文を投げるとそのまんまresultsetを返してくれるAjax用cgiを作りかけて、ことのマズさに気がついたことがあります。
ユーザには見せたくない情報が、url直打ちされたら丸見えになってしまいそうで。
そのうち「個人情報流出!」とかってニュースが出てきそうな予感。
どうなんでしょ。リファラとかでアクセス制限かければ解決できるんかな。