用jqueryajax类实现的一个ajax自动保存草稿功能
结合了xheditor编辑器,和csdn有点像
结合了xheditor编辑器,和csdn有点像
效果:
autosave.js
--------------------------------------------------------
// 自动保存时间间隔
var AutoSaveTime=60000;//20秒
// 计时器对象
var AutoSaveTimer;
// 首先设置一次自动保存状态
SetAutoSave();
// 自动保存函数
function AutoSave() {
var FormContent=editor.getSource();
if(!FormContent) return;
var url="autosave/autosave.asp";
var content="postcontent="+escape(FormContent);
$.ajax({ type: "POST", url: url, data: content, success: function(msg){ $("#AutoSaveMsg").html(msg);}});
//$.post(url,{postcontent:FormContent},function(msg){ $("#AutoSaveMsg").html(msg);})//$.ajax封装了的简化形式
}
//设置自动保存状态函数
function SetAutoSave() {
AutoSaveTimer=setInterval("AutoSave()",AutoSaveTime);
}
// 恢复最后保存的草稿
function AutoSaveRestore() {
$("#AutoSaveMsg").html("正在恢复,请稍候……")
var url="autosave/autosave.asp";
var content="action=restore";
$.ajax({ type: "POST", url: url, data: content, success: function(msg){ editor.setSource(msg);$("#AutoSaveMsg").html("恢复最后保存成功");}});
}
autosave.asp
-----------------------------------------<%@LANGUAGE="VBscript" CODEPAGE="65001"%>
<% Option Explicit %>
<%
On Error Resume Next
Dim PostContent,action,objStream
action=Request.Form("action")
PostContent=Request.Form("postcontent")
IF action="restore" Then
Set objStream = Server.CreateObject("ADODB.Stream")
With objStream
.Type = 2
.Mode = 3
.Open
.LoadFromFile(Server.MapPath("autosave.txt"))
.Charset = "utf-8"
.Position = 2
PostContent = .ReadText()
.Close
End With
Set objStream = NoThing
IF PostContent<>"" Then Response.Write(PostContent)
Else
' 保存草稿,如果草稿内容和用户名均不为空则进行保存操作
IF PostContent<>Empty Then
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.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
%>
前台调用显示
<a οnclick="AutoSave();" href="javascript:;">暂存</a> <a οnclick="AutoSaveRestore();" href="javascript:;">恢复</a>
<span id="AutoSaveMsg"></span>
<script type="text/javascript" src="autosave/jquery.js"></script>
<script type="text/javascript" src="autosave/autosave.js"></script>