iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > html >如何编写AJAX实现草稿自动保存
  • 625
分享到

如何编写AJAX实现草稿自动保存

2024-04-02 19:04:59 625人浏览 泡泡鱼
摘要

本篇内容主要讲解“如何编写ajax实现草稿自动保存”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何编写AJAX实现草稿自动保存”吧!仍旧以代码加注释来方式来说

本篇内容主要讲解“如何编写ajax实现草稿自动保存”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何编写AJAX实现草稿自动保存”吧!


仍旧以代码加注释来方式来说明怎么编写。

首先是表单填写页面,用一个ID为AutoSaveMsg的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实现草稿自动保存”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 如何编写AJAX实现草稿自动保存

本文链接: https://www.lsjlt.com/news/82162.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何编写AJAX实现草稿自动保存
    本篇内容主要讲解“如何编写AJAX实现草稿自动保存”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何编写AJAX实现草稿自动保存”吧!仍旧以代码加注释来方式来说...
    99+
    2022-10-19
  • 原创AJAX + PHP 编辑器内容自动备份草稿保存到本地 (适用ueditor百度编辑器或其它) 内容变化后自动触发备份txt文件
    百度自带的自动备份功能enableAutoSave存在问题, 比如第一个文章他自动备份了.等发表第二个文章时,结果把第一个文章的内容自动填充进去了.关键你还不知情!出现过多次这种情况了. 一, 百度原...
    99+
    2023-10-05
    编辑器自动保存 编辑器自动备份 编辑器自动草稿
  • 如何编写ajax实现跨站
    这篇文章主要介绍“如何编写ajax实现跨站”,在日常操作中,相信很多人在如何编写ajax实现跨站问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何编写ajax实现跨站”的疑惑...
    99+
    2022-10-19
  • 如何实现不用框架自己写ajax
    如何实现不用框架自己写ajax,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。平常会使用ajax来请求数据,加载一个库(框架),...
    99+
    2022-10-19
  • Ajax如何实现页面自动刷新
    这篇文章主要介绍了Ajax如何实现页面自动刷新,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Ajax简介:AJAX即“Asynchronous Javascript And ...
    99+
    2023-06-08
  • ubuntu下如何编写shell脚本实现开机自动启动
    这篇文章主要介绍“ubuntu下如何编写shell脚本实现开机自动启动”,在日常操作中,相信很多人在ubuntu下如何编写shell脚本实现开机自动启动问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ubunt...
    99+
    2023-07-04
  • Python如何手动编写一个自己的LRU缓存装饰器的方法实现
    LRU缓存算法,指的是近期最少使用算法,大体逻辑就是淘汰最长时间没有用的那个缓存,这里我们使用有序字典,来实现自己的LRU缓存算法,并将其包装成一个装饰器。 1、首先创建一个my_c...
    99+
    2022-11-12
  • css如何实现自动编号
    这篇文章主要为大家展示了“css如何实现自动编号”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“css如何实现自动编号”这篇文章吧。   一、自动编号   在...
    99+
    2022-10-19
  • Java如何实现properties文件动态修改并自动保存工具类
    这篇文章主要为大家展示了“Java如何实现properties文件动态修改并自动保存工具类”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java如何实现properties文件动态修改并自动保存...
    99+
    2023-05-30
    java properties
  • 如何实现AJAX制作自动校验的表单
    这篇文章主要讲解了“如何实现AJAX制作自动校验的表单”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何实现AJAX制作自动校验的表单”吧!传统网页在注册时...
    99+
    2022-10-19
  • 如何实现Chrome浏览器的自动保存密码提示功能禁用
    这篇文章主要介绍“如何实现Chrome浏览器的自动保存密码提示功能禁用”,在日常操作中,相信很多人在如何实现Chrome浏览器的自动保存密码提示功能禁用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何实现C...
    99+
    2023-06-08
  • linux中gedit文本编辑器如何设置自动保存文件内容
    小编给大家分享一下linux中gedit文本编辑器如何设置自动保存文件内容,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!linux中有一款gedit文本编辑器,但...
    99+
    2023-06-10
  • django如何实现ajax提交评论并自动刷新功能
    这篇文章将为大家详细讲解有关django如何实现ajax提交评论并自动刷新功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。js代码:<script> &nb...
    99+
    2022-10-19
  • 如何编写Shell脚本实现自动检测修改最快的Ubuntu软件源
    这篇文章主要讲解了“如何编写Shell脚本实现自动检测修改最快的Ubuntu软件源”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何编写Shell脚本实现自动检测修改最快的Ubuntu软件源...
    99+
    2023-06-09
  • Qt如何编写自定义控件实现抽奖转盘
    本文小编为大家详细介绍“Qt如何编写自定义控件实现抽奖转盘”,内容详细,步骤清晰,细节处理妥当,希望这篇“Qt如何编写自定义控件实现抽奖转盘”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。具体代码如下#ifndef...
    99+
    2023-07-02
  • sql server编写archive通用模板脚本如何实现自动分批删除数据
    这篇文章主要介绍了sql server编写archive通用模板脚本如何实现自动分批删除数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。做...
    99+
    2022-10-18
  • 如何使用Jenkins + Git Submodule实现自动化编译
    这篇文章主要介绍了如何使用Jenkins + Git Submodule实现自动化编译,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、一个...
    99+
    2022-10-19
  • 基于Ajax技术如何实现考试倒计时并自动提交试卷
    这篇文章主要介绍基于Ajax技术如何实现考试倒计时并自动提交试卷,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.概述在开发网络考试系统时,考试计时并自动提交试卷是必不可少的功能。由...
    99+
    2022-10-19
  • jackson如何解析json字符串实现首字母大写自动转为小写
    这篇文章主要为大家展示了“jackson如何解析json字符串实现首字母大写自动转为小写”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“jackson如何解析js...
    99+
    2022-10-19
  • Windows环境下Java路径缓存如何实现自动清理?
    在Windows环境下,Java开发人员经常会遇到一个问题:Java路径缓存。Java路径缓存是指Java在启动时会将Java执行文件的路径缓存到Windows注册表中,以便下次启动时快速定位Java执行文件的位置,从而提高启动速度。然而,...
    99+
    2023-10-16
    path 缓存 windows
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作