Jeg har et eksperiment som du kan tage udgangspunkt i. Det er rå testkode, så der kan helt sikkert laves en del forbedringer og smarte features, men det er ikke formålet med dette post at vise sådanne ting... :-)
Testsiden som jeg har kaldt testSaveTextState.htm:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="
http://www.w3.org/1999/xhtml" >
<head>
<title>Test Save Text State</title>
<script type="text/javascript">
function xmlhttpPost(strURL) {
var xmlHttpReq = false;
var self = this;
// Mozilla/Safari
if (window.XMLHttpRequest) {
self.xmlHttpReq = new XMLHttpRequest();
}
// IE
else if (window.ActiveXObject) {
self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
self.xmlHttpReq.open('POST', strURL, true);
self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
self.xmlHttpReq.onreadystatechange = function() {
if (self.xmlHttpReq.readyState == 4) {
updatepage(self.xmlHttpReq.responseText);
}
}
self.xmlHttpReq.send(getquerystring());
}
function getquerystring() {
var f = document.getElementById('frm');
var t = document.getElementById("txt").value;
qstr = 'txt=' + escape(t);
return qstr;
}
function updatepage(str){
}
var tmr = null;
function initSaveTextState() {
// Så er der trykket på en taste i tekstfeltet, hvilket betyder at der
// skal sættes en timer som kalder opdatering af teksten i session.
// Hvis der allerede er en timer igang, så annulleres denne inden
// den ny sættes igang. Dette er for at undgå for mange opdateringer
// indenfor en kort periode...
clearTimeout(tmr);
tmr = setTimeout("xmlhttpPost('
http://www.ditdomæne.dk/testSaveTextStateSvr.asp')", 1000);
}
</script>
</head>
<body>
<form id="frm">
<textarea id="txt" style="width:300px;height:300px" onkeyup="initSaveTextState()"></textarea>
<iframe style="width:300px;height:300px" src="testSaveTextStateView.asp"></iframe>
</form>
</body>
</html>
testSaveTextStateSvr.asp:
<%
Session("testTxtState") = Request.Form("txt") & ""
Response.Write("")
%>
og testsiden der hvert andet sekund viser hvad der pt. ligger i session-variablen:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="
http://www.w3.org/1999/xhtml" >
<head>
<title>Untitled Page</title>
<script type="text/javascript">
window.onload = function() {
setTimeout("window.location.reload(true)", 2000);
}
</script>
</head>
<body>
<%=replace(Session("testTxtState"), vbcrlf, "<br>") %>
</body>
</html>