Javascriptをはじめ、Ajax、jQueryの著書多数のガイドが、何かと最近騒がれているJa…
北欧好きが、愛用の北欧モノを見せ合うコミュニティ
Javascript関連情報
更新日:2005年08月31日
掲示板も、Ajaxを利用することで、ページ丸ごと更新の無い軽快な動作が可能になります。今回は、サーバー側ソースには触らずに、 JavaScript側からのSQLデータベース制御ロジックのみで動作するBBSです。

//発言済みデータをリクエスト
function showMsg(oj)
{
//SQL文作成
// (テーブルから カラム「id」降順でmax.value件リクエスト)
var sql = 'SELECT * FROM ' + sqlite01.tblName
+ ' ORDER BY id DESC '
+ ' LIMIT '+oj.form.max.value+';';
//SELECT文を送信
asql_sendSQL(sqlite,sql)
}
上記で、oj.form.max.valueなどの変数とともに合成し、作成しているSQL文は、簡単に書くとたとえば、次のようなものです。 mydb1というデータベーステーブルから、idカラムを降順にして10件取り出します。
'SELECT * FROM mydb1 ORDER BY id DESC LIMIT 10 ;';分解して説明すると次のような意味になります。
SELECT(選び出す) * (全列) FROM mydb1(mydb1テーブルから) ORDER BY id DESC (idカラムを降順、ASCなら昇順) LIMIT 10 (10件をリミット);このテーブルmydb1では、idは、発言毎の連番を自動でつけています。つまり、idが大きいほど新しい発言ということになります。こんなに単純なSQL文1行によって、データが何十万件あろうとも、最新の発言を10件、JavaScriptから即座に受け取ることができるというわけです。
callback : 'onSelected', // 受信時の初期起動関数名
このように書くか、
iniOj.callback = onSelected // 受信時の初期起動関数名
などのように書いてから、たとえば次のようにSQLを送信すれば、
asql_sendSQL(sqlite,sql) //SELECT文を送信
受信データは、次のようなコールバック関数の中で受け取り、JavaScriptで処理することができるようになります。 下記で、レスポンスデータを配列化しているgetRowColArray()やHTMLテーブル化しているoutputMsges()は AjaSQLライブラリで使える関数です(詳しくは各ライブラリのソース内をご覧下さい)
//コールバック関数(サーバーから着信時に起動)
function onSelected(resoj,reqoj)
{
//レスポンスデータを配列化 ( array[行][列] で取り出せるようにします)
ary = getRowColArray(resoj,reqoj)
if(ary.length>1){
//テーブル化して発言表示用DIV へ出力
msges.innerHTML=outputMsges(ary,headBgcolor,rowsBgcolors)
}
}
AjaSQLライブラリでは、ゲートウエイで、SafariやKHTMLなどの文字化け対処などを行ったり、ドラッグや透明化などのエフェクト処理等までクロスブラウザな様々な関数を利用できるようになっています。
CREATE TABLE mydb1(
id integer primary key, //id
name text , //名前
msg text , //メッセージ
memo text , //メモ
date text, //日時
ip text //ip
);
1|test|test||2005-08-30 17:26:02| 2|test|こんにちは||2005-08-30 17:26:09| 3|テスト|こんにちは、あいうえお||2005-08-30 17:40:09| 4|aaa|aaa||2005-08-30 18:12:20| : :
(Webアクセス可エリア) │ ├sample.htm //サンプル(0604) │ ├bbsdb/(0707) │ │ │ ├mydb_bbs.db //SQLite掲示板用データベース(0606) │ └mydb_bbs_yobi.db //データベース予備(0600) │ *DB所有者はWebサーバーのユーザー │ (nobodyやapacheなど)以外にしてください。 └ajasql/ │ ├ajasql_gw233.php //サーバー側AjaSQLゲートウエイ(0604) │ ├ajasql_bbs001.jp //BBS用 ライブラリ (0604) ├jslb_ajasql027.js //暫定AjaSQLライブラリ(0604) └jslb_ajax036.js //暫定Ajaxライブラリ(0604)
人気Javascriptランキング
Powered by 価格.com
北欧好きが、愛用の北欧モノを見せ合うコミュニティ