何かjavascriptのクラスなどで手軽に実装できるなら是非導入を検討しています。
イメージとしてはGmailでメールを書いている途中に自動的に保存させるようなイメージです。
具体的に何を使ってどうすればいいのでしょうか?
また、懸念しておくべきことは何でしょうか?
どこに保存するかが問題だと思います。そして保存したものをどこで呼び出すか。
1.<input type="hidden" />に保存しても、ブラウザを閉じたらなくなってしまう。
2.Ajaxで外部ファイルにテキストとして書き出す。
3.submit先に5分おきに送る。
いずれにしても、骨格としてはこういうものを作ればいいと思います。
window.onload = fuction() {
setTimeout(save, 300000);
}
function save () {
保存メソッド
}
参考にしたサイト
http://www.ne.jp/asahi/hishidama/home/tech/jscript/timer.html
submitを呼ばなくてもXMLHTTPReuqestを利用すればPOSTできます。
JavaScript部分はこんな感じです。
function init(){ setInterval("save()",1000*5);//5秒おきに保存 } function save() { httpObj = createXMLHttpRequest(); //サーバ側の処理を指定 httpObj.open("post", "/test/save.do",false); httpObj.setRequestHeader("content-type", "application/x-www-form-urlencoded;charset=UTF-8"); //フォームの入力データを送信 httpObj.send("address=" + encodeURI(document.forms[0].address.value)); } // XMLHttpRequestオブジェクトを生成 function createXMLHttpRequest(){ if(window.XMLHttpRequest) { httpObj = new XMLHttpRequest(); } else if(window.ActiveXObject) { try { httpObj = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { httpObj = new ActiveXObject("Microsoft.XMLHTTP"); } } return httpObj; }
私のブログにもう少し詳しく書いておきました。(サーバー側はJavaを利用ですが)
とても詳しい解説ありがとうございます。
日記もぜひとも拝見させていただきます。
保存は、正常に登録したときに保存するデータベースに保存するつもりです。
保存は、submit()を呼ばなくても、POSTできるものなのでしょうか?
XMLHTTPRequestとか使うんでしょうか?