AJAX 응용 초고 자동 저장

Gmail 을 사용 한 사람 은 Gmail 이 초고 자동 저장 기능 이 있다 는 것 을 알 고 있 습 니 다.시간 이 지나 면 Gmail 은 메 일 초 고 를 자동 으로 저장 합 니 다.그러면 일부 돌발 상황 에서 신속하게 업 무 를 회복 하여 반나절 동안 쓴 메 일이 눈 깜짝 할 사이 에 없어 지지 않도록 할 수 있 습 니 다.AJAX 를 배 운 후에 나 도 내 블 로그 에 이 기능 을 추가 했다.물론 이 애플 리 케 이 션 은 블 로그 에 만 국한 되 는 것 이 아니 라 비교적 통용 된다 고 해 야 한다.PS.개발 의 편 의 를 위해 제 가 쓴 AJAX 류,구체 적 인 내용 과 다운 로드 는 여기 있 습 니 다. 을 사 용 했 습 니 다.프레젠테이션 주소,나의 블 로그 은 여전히 코드 에 주석 을 달 아 어떻게 작성 하 는 지 설명 한다.먼저 양식 작성 페이지 입 니 다.AutoSaveMsg 라 는 ID 의 DIV 로 되 돌아 오 는 정 보 를 표시 하고 하나의 ID 로 Draft 입 니 다.AutoSave 의 CheckBox 는 자동 저장 여 부 를 확인 한 다음 Textarea 의 ID 를 message 라 고 명명 합 니 다.또한 다 중 사용자 가 동시에 사용 해 야 하 는 수요 에 대응 하기 위해 사용자 이름 을 더 해 각 사용자 의 초 고 를 따로 저장 합 니 다.편 의 를 설명 하기 위해 저 는 수식 적 인 것 을 지 웠 습 니 다.이렇게 하면 비교적 명확 해 보 입 니 다.

AJAX <br />
<!--  NONAME -->
:<input type="text" name="memName" id="memName" size="20" value="NONAME" />&nbsp;&nbsp;&nbsp;&nbsp;
<!--  onclick  -->
<input onclick="SetAutoSave();" type="checkbox" id="Draft_AutoSave" value="1" checked="true"  /> ?<br />

<textarea id="message"></textarea><br />
<!-- AutoSaveMsg  -->
<div id="AutoSaveMsg"></div>
<input type="submit" value=" " />&nbsp;&nbsp;
<!--   -->
<input type="button" onclick="AutoSaveRestore();" value=" " />
</div>
</div>
<!--  JS ,  -->
<!-- AJAX  -->
<script type="text/javascript" src="ajaxrequest.js"></script>
<!--   -->
<script type="text/javascript" src="autosave.js"></script>

다음은 autosave.js

// 
//  FormContent
var FormContent=document.getElementById("message");
// 
var AutoSaveMsg=document.getElementById("AutoSaveMsg");
// 
var memName=document.getElementById("memName").value;
// 
var AutoSaveTime=60000;
// 
var AutoSaveTimer;

// 
SetAutoSave();

// 
function AutoSave() {
    //  , ,
    if(!FormContent.value||!memName) return;
    //  AJAXRequest ,
    var ajaxobj=new AJAXRequest;
    ajaxobj.url="autosave.asp";
    ajaxobj.content="memname="+escape(memName)+"&postcontent="+escape(FormContent.value);
    ajaxobj.callback=function(xmlObj) {
        // 
        AutoSaveMsg.innerHTML=xmlObj.responseText;
    }
    ajaxobj.send();
}

// 
function SetAutoSave() {
    //  ?
    if(document.getElementById("Draft_AutoSave").checked==true)
        //  ,
        AutoSaveTimer=setInterval("AutoSave()",AutoSaveTime);
    else
        //  ,
        clearInterval(AutoSaveTimer);
}

// 
function AutoSaveRestore() {
    //  AJAXRequest
    var ajaxobj=new AJAXRequest;
    // 
    AutoSaveMsg.innerHTML=" , ……"
    ajaxobj.url="autosave.asp";
    ajaxobj.content="action=restore&memname="+escape(memName);
    ajaxobj.callback=function(xmlObj) {
        // 
        AutoSaveMsg.innerHTML=" ";
        //  textarea
        if(xmlObj.responseText!="") {
            // 
            FormContent.value=xmlObj.responseText;
        }
    }
    ajaxobj.send()
}

이 고 마지막 으로 autosave.asp 입 니 다.배경 에 초 고 를 저장 하 는 데 사 용 됩 니 다.

<%@LANGUAGE="VBscript" CODEPAGE="65001"%>
<% Option Explicit %>
<%
'  VBScript, UTF-8,
'  ,
On Error Resume Next


Dim PostContent,memName,action,objStream

'  ,
action=Request.Form("action")

memName=Request.Form("memname")

PostContent=Request.Form("postcontent")
IF action="restore" Then
    '  ,
    IF memName<>Empty Then
        '   ADODB.Stream 
        Set objStream = Server.CreateObject("ADODB.Stream")
        With objStream
            .Type = 2
            .Mode = 3
            .Open
            '   autosave_ +   + .txt
            .LoadFromFile(Server.MapPath("autosave_"&memName&".txt"))
            .Charset = "utf-8"
            '.Position = 0
            PostContent = .ReadText()
            .Close
        End With
        Set objStream = NoThing
        ' 
        IF PostContent<>"" Then Response.Write(PostContent)
    End IF
Else
    '  ,
    IF PostContent<>Empty AND memName<>Empty Then
        '   ADODB.Stream 
        Set objStream = Server.CreateObject("ADODB.Stream")
        With objStream
            .Type = 2
            .Mode = 3
            .Open
            .Charset = "utf-8"
            .Position = objStream.Size
            .WriteText= PostContent
            .SaveToFile Server.MapPath("autosave_"&memName&".txt"),2
            .Close
        End With
        Set objStream = NoThing
        ' 
        If Err.Number=0 then
            Response.Write("  "&Now()&"  ")
        Else
            Response.Write("  "&Now()&"  , :"&Err.Number&", :"&Err.Dscription)
        End If
    End IF
End IF
%>
에 이 르 러 AJAX 초 고 는 자동 으로 저장 되 었 습 니 다.주소:http://www.xujiwei.cn/blog/blogview.asp?logID=585

좋은 웹페이지 즐겨찾기