Jaxerとか〜

2012-06-06 Jaxer関係の記事をここにまとめました。



■はじめに
・WEBの勉強し始めるとデザイン・プログラミングと大変なので言語をJavaScriptに絞りました。
Aptana JaxerだけならJavaScriptだけでいけるし面倒な設定もないので楽です。
設置
http://jaxer.org/downloadからファイルをダウンロードして適当なところに解凍。
メモリースティックに解凍して出先で借りたパソコンでも使っています。
主な中身
・index.htmlの位置:\public
sqliteの位置:\local_jaxer\data\DEFAULT\appdata.sqlite 編集には「PupSQLite」のページは移転いたしましたを使ってます
・ログの位置:\logs
・起動ファイル:StartServers.bat
起動・終了方法
・StartServers.batを実行するだけ。(コマンドプロンプトにstarting〜がでます)
コマンドプロンプトのウインドウ上でキーを押すと終了します。
・ブラウザでアドレス欄にhttp://localhost:8081/トップページ等・・・を入力すればすぐ使えます。
(変に設定とかしていない普通のパソコンで面倒なパス通して再起動とか一切しなかったです。)
記述方法
HTML

<script type="text/javascript" runat="server"> //サーバーのみ </script>
<script type="text/javascript" runat="server-proxy"> //サーバー・クライアントのやりとり </script>
<script type="text/javascript" runat="client"> //ふつうのクライアント側のもの </script>
<script type="text/javascript" runat="both"> //サーバー・クライアント両方 </script>

とかでサーバー側とクライアント側を使い分けます。
注意するのはjQueryなど両方で使いたいものをbothにしておくこと。
(clientは記述しなくてもいいのでつい忘れてしまいます)
サーバー側にはJaxer.DBやJaxer.sessionやJaxer.WebやJaxer.Fileなどあって便利です。
APIはこちらhttp://jaxer.org/api/



■Jaxerを使ってformでsubmitしたpostデータを取得?みたいな〜(2011-01-17)
JavaScriptでformから送ったpostデータを取得したいと頑張っていたのですが・・・ないみたい?
で。こちらhttp://jaxer.org/tutorials/server_side_jqueryを見てたのですが、なんか出来そう。
で。ためしてみました。
HTML (フォーム側)

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
	<form action="jaxerRequest.html" method="post">
		<textarea name="sendData" rows="10" cols="65"></textarea>
		<input type="submit" value="send"/>
	</form>
</body>
</html>

HTML (受信側:jaxerRequest.html)

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />

<script type="text/javascript" runat="server">
	function init() {
		var postData=Jaxer.request.data.sendData; //Jaxer.request.data.「nameの値」
		document.body.innerHTML=postData;
	}
</script>

</head>
<body onserverload="init()">
</body>
</html>

これでなんかうまくいきました・・・が、よく分かってない感じw



■Jaxerの非同期のところを自分のためにまとめておいたみたいな〜(2011-01-17)
JavaScript

<script type="text/javascript" runat="server-proxy">
	function loginReq(value){ //(2)
               //Jaxer.session.value=value;  セッションset
               //    (getはvar value=Jaxer.session.value;)
               //Jaxer.DB.execute("SQL",[value]);  DBの処理
               //    (Jaxer.DB.execute("BEGIN"/"COMMIT"/"END"/"ROLLBACK")とかいろいろ使う
               return response; //レコードとかnullとかtrue/falseを返す
         }
</script>
<script type="text/javascript" runat="client">
         function login(){ //(1)
               //ここで入力の値(value)を取得
               loginReq.async(loginRes,value);
         }
         function loginRes(response){ //(3)
               //ここでresponseによるページ遷移またはエラー表示
         }
</script>



■Jaxerを使ってformでsubmitしたpostデータを取得?のPHPみたいに自分自身を呼び出すみたいな〜(2011-01-17)
この自分で自分を呼び出すのっていまいち苦手なんですが・・・なんかできましたw
HTML

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />

<script type="text/javascript" runat="server">
	function init() {
		var postData=Jaxer.request.data.sendData;
		if(postData){
			var res=document.getElementById("res");
			var buf="";
			if(Jaxer.session.buf){buf=Jaxer.session.buf;}
			res.innerHTML=postData+"<br/>"+buf;
			Jaxer.session.buf=res.innerHTML;
		}
	}
</script>

</head>
<body onserverload="init()">
	<form action="jaxerForm2.html" method="post">
		<input type="text" name="sendData"/>
		<input type="submit" value="send"/>
	</form>
	<div id="res"></div>
</body>
</html>



■JaxerのonserverloadをjQueryで後付するときにハマったこととか〜(2011-01-18)
既存のサイトに組み込もうとしたのがまずくてw
結局サイトの余計なコードを全部除いてあれこれすると30分もしないうちに判明w
1日ムダになってしまいましたw
runat="server"が必要だったということです。(bothでもいいみたい)

<script type="text/javascript" runat="server">
	$(function(){
		$("body").attr("onserverload","init()");
	});
</script>

(追記 2011-01-19)
よく考えてみれば・・・$(function(){});=onserverloadではないかwww
つまり

<script type="text/javascript" runat="server">
	$(function(){
		init();
	});
</script>

でいいじゃんw