`
oywl2008
  • 浏览: 1051629 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JS定时保存表单数据

 
阅读更多

我相信有不少TX用过QQ或163的邮箱吧?
他们中有一个比较有用且有趣的功能,如果您在编写邮件,那在固定一个时间频率内,它会自动将您的邮件内容保存起来,以免丢失。
(忘记是不是两家邮箱都有这个功能)。
那这个功能是怎么做的呢?

定时,我们知道怎么弄,但保存呢?也许我们会通过隐藏域等手段来存放数据。但是,这个却有个缺点:那就是刷新页面后,数据将会丢失。
而此时,就该轮到我们很少关注,而且估计有不少人不知道的UserData 行为(userData Behavior)登场了:
而这个UserData是什么?怎么用?,我将在文章最后转载一篇介绍它的文章。
现在,我直接上例子,所谓无代码,无真相嘛:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <head>
  <title> new document </title>
  <meta name="generator" content="editplus" />
  <meta name="author" content="" />
  <meta name="keywords" content="" />
  <meta name="description" content="" />
  <script type="text/javascript">
  
    window.onload=function(){
  
        var txtObj = document.getElementById('txt1');
        var spanObj = document.getElementById('s1');
  
        //自动保存
        txtObj.addBehavior("#default#userData");
  
        var saveTimer= setInterval(function(){
            txtObj.setAttribute('OValue',txtObj.value);
            txtObj.save('SavedData');
  
            spanObj.innerText='数据保存于:'+(new Date());
            setTimeout(function(){
                spanObj.innerText='';
            },1000);
  
        },10000); //每分钟保存一次
  
        document.getElementById('btn1').attachEvent('onclick',function(){
            clearInterval(saveTimer); //取消保存
            txtObj.removeAttribute('OValue');
        });
  
        document.getElementById('btn2').attachEvent('onclick',function(){
            txtObj.load('SavedData');
            alert(txtObj.getAttribute('OValue'));
            //txtObj.value = txtObj.getAttribute('OValue');
        });
    };
  
  </script>
 </head>
  
 <body>   
     <span id="s1" style="color:red;"></span>
     <p />
     <textarea height="500" style="height:500px;width:500px;" id="txt1">
     </textarea>
     <p />
     <input type="button" id="btn1" value="停止保存" />
     <input type="button" id="btn2" value="获取保存的值" />
 </body>
</html>

将这段html复制下来运行一下,你就会发现,其实这跟邮箱中的定时保存基本一致了,在润色一下就OK了。

----------------------------

下面是一篇描述、讲解UserData的文章,来自于:http://www.cnblogs.com/isoar/archive/2010/06/18/1759859.html?login=1#commentform

UserData 行为(userData Behavior):


1、说明:

userData行为通过将数据写入一个UserData存储区(UserData store)来保存数据,userData可以将数据以XML格式保存在客户端计算机上,如果你用的是 Windows 2000 或者 Windows XP,是保存在C:\Documents and Settings\Liming\UserData\文件夹下(如果操作系统不是安装在C盘,那么C就应该是操作系统所在的分区)。


该数据将一直存在,除非你人为删除或者用脚本设置了该数据的失效期。


userData行为提供了一个比Cookie更具有动态性和更大容量的数据结构。每页的UserData存储区数据大小可以达到64 Kb,每个域名可以达到640 Kb。

userData行为通过sessions为每个对象分配UserData存储区。使用save和load方法将UserData存储区数据保存在缓存(cache)中。一旦UserData存储区保存以后,即使IE浏览器关闭或者刷新了,下一次进入该页面,数据也能够重新载入而不会丢失。

出于安全的考虑,相同协议使用同一个文件夹保存UserData存储区数据。

For security reasons, a UserData store is available only in the same directory and with the same protocol used to persist the store.


在HTML、HEAD、TITLE和STYLE标记上应用了userData行为后使用save和load方法将会出错。
Setting the userData behavior (proposed) class on the HTML, HEAD, TITLE, or STYLE object causes an error when the save or load method is called.


必须在行内或者文档的HEAD部分宣告如下样式:


   <STYLE>
      .userData {behavior:url(#default#userdata);}
   </STYLE>


userData行为可用于Microsoft? Win32?和Unix平台上的IE 5.0以上版本,不支持Netscape。


2、语法:

HTML     <ELEMENT STYLE="behavior:url('#default#userData')" ID=sID>

Script     object.style.behavior = "url('#default#userData')"

             object.addBehavior ("#default#userData")

注:sID参数是一个可以描述该标记的唯一id。ID是可选的,但如果有,可以在脚本中方便地对该标记加以控制。


3、成员:


expires

  设置或取得使用userData行为保存数据的失效日期。

    脚本语法:对象ID.expires = 参数

    参数是一个使用UTC(Universal Time Coordinate,世界调整时间)格式表示失效日期的字符串。该属性可以读写,没有默认值。浏览器会对比这个日期和当前日期,如果到期,该数据就自动失效。


getAttribute()
  取得指定的属性值。


load(存储区名)
  从UserData存储区载入存储的对象数据。


removeAttribute()
  从对象中删除指定的属性值。


save(存储区名)
  将对象数据存入一个UserData存储区。


setAttribute()
  设置指定的属性值。


XMLDocument
  取得存储该对象数据的XML DOM引用。


具体用法可以查看MSDN(http://msdn.microsoft.com

<h3>
   心静似高山流水不动,心清若巫峰雾气不沾。
</h3>
分享到:
评论

相关推荐

    javascript定时保存表单数据的代码

    JavaScript定时保存表单数据是一种常见的前端开发技巧,用于防止用户在编辑表单内容时意外丢失数据。例如,QQ和163邮箱中的自动保存功能就是这样的应用实例。当用户撰写邮件时,系统会在设定的时间间隔内自动保存...

    Jquery的表单插件

    2. **实时保存草稿**:如写作平台,用户在编辑内容时,定时保存草稿,防止意外丢失。 3. **在线文件上传**:例如图片、文档上传,可以显示上传进度,用户可随时取消操作。 4. **无刷新搜索**:在搜索框中输入关键词...

    JavaScript入门之事件、cookie、定时等

    4. `onsubmit`:表单提交事件,用于在表单数据发送到服务器之前进行验证。 5. `onfocus` 和 `onblur`:分别在元素获得和失去焦点时触发,例如输入框失去焦点时可以触发验证操作。 6. `onchange`:当输入框的内容改变...

    基于ext-core的ajax自动保存功能

    而使用AJAX(Asynchronous JavaScript and XML)技术则能在不刷新页面的情况下完成数据提交,使得自动保存过程对用户几乎不可见,从而保证了编辑流程的连贯性和数据的安全性。 #### 3. 使用form提交:解决特殊字符...

    jquery form jquery.form.js

    1. 数据实时保存:在网页编辑器或表单填写过程中,可以定时异步提交已输入的数据,避免因意外情况导致数据丢失。 2. 无刷新搜索:用户输入查询条件后,通过异步提交更新搜索结果,提高响应速度。 3. 大文件上传:在...

    ajax弹窗即时上传副带进度条+ajax定时访问数据库

    在IT行业中,Ajax(Asynchronous JavaScript and XML)技术被广泛应用于网页上的无刷新交互,它允许用户在不重新加载整个页面的情况下与服务器交换数据并更新部分网页内容。本项目涉及的"ajax弹窗即时上传副带进度条...

    JavaScript精彩网页特效实例

    1. `localStorage`和`sessionStorage`:提供本地存储功能,用于保存用户数据和页面状态。 2. IndexedDB:更强大的数据库存储,适用于大量数据的本地存储。 九、JavaScript库和框架 1. jQuery:简化DOM操作,提供...

    基于ASP的SipoAutoSaver V3.0 基于Ajax的网站通用草稿自动保存系统.zip

    当用户在填写表单时,后台脚本(ASP)会定时监听用户的输入变化,通过Ajax向服务器发送请求,将当前的表单数据保存为草稿。这样,即使用户关闭了浏览器或者遭遇其他问题,服务器端已经保存了他们的工作,再次打开时...

    300种JS效果

    14. **Web存储**:利用localStorage和sessionStorage,JS可以在浏览器端保存数据,实现数据持久化。 15. **Web Workers**:通过Web Workers,JS可以在后台线程运行复杂计算,提高网页性能。 16. **Fetch API**:...

    JavaScript网页设计300例.rar

    表单验证是JavaScript在实际应用中的常见场景,通过JavaScript可以实现对用户输入的有效性检查,防止无效数据提交到服务器。例如,可以编写函数验证邮箱格式、手机号码合法性,或者检查必填字段是否为空。 最后,...

    javaScript 实现的一些小功能

    7. **本地存储**:JavaScript提供了`localStorage`和`sessionStorage`,允许我们在浏览器中保存数据,即使页面关闭后数据仍然存在。这对于实现用户设置持久化或离线状态下应用的状态维护非常有用。 8. **定时器与回...

    AD远程数据采集试验.doc

    这个实验涉及到Web技术、JavaScript编程以及XML数据交互,用于展示如何通过网络实时获取并显示AD转换器的测量数据。 1、源代码: 实验中提供了两个HTML文件,index.html和adc.html。index.html是用户界面,它包含一...

    Delphi 用HTML做界面。订餐系统。跟js/html交互

    "Unit_SetTimeOut.dcu"可能涉及到定时器功能,用于设置操作超时或执行定时任务,例如自动保存用户订单或定期检查服务器状态。 总的来说,这个项目结合了Delphi的强后端处理能力、HTML的界面展示以及JavaScript的...

    HTML网页助手,包括JS万年历、闹钟、备忘录 常用查询.rar

    3. **备忘录**:备忘录功能通常涉及到HTML表单用于输入数据,JavaScript处理表单提交,以及可能的本地存储(localStorage或sessionStorage)来保存用户输入的信息。JavaScript的DOM操作用于在页面上显示和更新备忘录...

    程序天下:JavaScript实例自学手册

    9.36 使用JavaScript向表格中写入数据 9.37 类C# GridView的编辑效果(一) 9.38 类C# GridView的编辑效果(二) 第10章 单选框和复选框 10.1 选择了哪一个单选框 10.2 单击文字实现单选框的选定 10.3 被选中的复选...

    入职开发培训111111

    - **流程表单校验:** 在表单设计中,确保输入的数据符合业务规则,如时间校验,通过编写JavaScript代码实现表单字段的验证,确保请假开始时间小于或等于结束时间。 - **自定义事件注册:** 允许开发者为表单的...

    javascript课件及实例

    1. **网页交互**:例如,使用JavaScript实现计时器、动态显示时间、表单验证、图片轮播等。 2. **Ajax请求**:模拟发送HTTP请求,获取服务器数据,实现动态加载内容。 3. **游戏开发**:如简单的猜数字游戏、扫雷...

    今日校园自动化是一个基于Python的爬虫项目,主要实现今日校园签到、信息收集、查寝等循环表单的自动化任务.zip

    同时,抓取到的数据应保存到本地文件或数据库中,以便后续分析或展示。 八、安全与合规性 在进行网络爬虫时,必须遵守相关法律法规,尊重网站的Robots协议,并避免对目标服务器造成过大压力。项目实施时,应确保...

    ajax+jsp草稿自动保存的实现代码.docx

    - 实现`AutoSave()`函数:定时检查文本区域的内容变化,并使用Ajax向服务器发送保存请求。 - `SetAutoSave()`函数:根据用户的选择(是否启用自动保存)设置或清除定时器。 - `AutoSaveRestore()`函数:用于从服务器...

Global site tag (gtag.js) - Google Analytics